mvn编译时找不到com.sun下的包
2021-08-01 本文已影响0人
东南枝下
写了个编译时注解,使用了com.sun.source.tree.Tree和com.sun.tools.javac.*
javac编译时是没有问题啊,但想用maven打成jar包时却报找不到包,就很绝望
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building jsr269api 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ jsr269api ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.2:compile (default-compile) @ jsr269api ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 2 source files to /Users/gy/MyCode/自己写着玩的代码/java代码/jsr269api/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /Users/gy/MyCode/自己写着玩的代码/java代码/jsr269api/src/main/java/annotation/MyDataAnnotationProcessor.java:[6,27] 程序包com.sun.source.tree不存在
[ERROR] /Users/gy/MyCode/自己写着玩的代码/java代码/jsr269api/src/main/java/annotation/MyDataAnnotationProcessor.java:[7,31] 程序包com.sun.tools.javac.api不存在
[ERROR] /Users/gy/MyCode/自己写着玩的代码/java代码/jsr269api/src/main/java/annotation/MyDataAnnotationProcessor.java:[8,32] 程序包com.sun.tools.javac.code不存在
[ERROR] /Users/gy/MyCode/自己写着玩的代码/java代码/jsr269api/src/main/java/annotation/MyDataAnnotationProcessor.java:[9,32] 程序包com.sun.tools.javac.code不存在
[ERROR] /Users/gy/MyCode/自己写着玩的代码/java代码/jsr269api/src/main/java/annotation/MyDataAnnotationProcessor.java:[10,38] 程序包com.sun.tools.javac.processing不存在
[ERROR] /Users/gy/MyCode/自己写着玩的代码/java代码/jsr269api/src/main/java/annotation/MyDataAnnotationProcessor.java:[11,32] 程序包com.sun.tools.javac.tree不存在
[ERROR] /Users/gy/MyCode/自己写着玩的代码/java代码/jsr269api/src/main/java/annotation/MyDataAnnotationProcessor.java:[12,32] 程序包com.sun.tools.javac.tree不存在
[ERROR] /Users/gy/MyCode/自己写着玩的代码/java代码/jsr269api/src/main/java/annotation/MyDataAnnotationProcessor.java:[13,32] 程序包com.sun.tools.javac.tree不存在
[ERROR] /Users/gy/MyCode/自己写着玩的代码/java代码/jsr269api/src/main/java/annotation/MyDataAnnotationProcessor.java:[14,1] 程序包com.sun.tools.javac.util不存在
[ERROR] /Users/gy/MyCode/自己写着玩的代码/java代码/jsr269api/src/main/java/annotation/MyDataAnnotationProcessor.java:[30,17] 找不到符号
先后采取了两种网上的办法,但没有效果,这是其中一种
https://www.iteye.com/blog/hzwei206-2366531
后来采取了这种方法https://cloud.tencent.com/developer/ask/191457
手动引入,打包成功
pom.xml
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.7</version>
<scope>system</scope>
<systemPath>/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/lib/tools.jar</systemPath>
</dependency>
补充另一个问题
打包时报错
ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project jsr269api: Compilation failure
[ERROR] /Users/gy/MyCode/自己写着玩的代码/java代码/jsr269api/src/main/java/annotation/MyDataAnnotationProcessor.java:[63,68] -source 1.5 中不支持 lambda 表达式
[ERROR] (请使用 -source 8 或更高版本以启用 lambda 表达式)
解决方式,指定版本
pom.xml
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>