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>

上一篇 下一篇

猜你喜欢

热点阅读