标签: maven-compiler-plugin

Maven Pom.xml问题

我正在尝试使用maven创建一个spring mvc项目并在pom.xml中获取以下错误:

CoreException:无法计算构建计划:插件org.apache.maven.plugins:maven-compiler-plugin:2.3.2或其中一个依赖项无法解析:无法读取org.apache.maven.plugins的工件描述符: maven-compiler-plugin:jar:2.3.2:ArtifactResolutionException:无法从http:// repo.maven.apache.org/maven2转移org.apache.maven.plugins:maven-compiler-plugin:pom:2.3.2缓存在本地存储库中,在中心的更新间隔过去或强制更新之前,不会重新尝试解析.原始错误:无法传输工件org.apache.maven.plugins:maven-compiler-plugin:pom:2.3.2 from/to central(http:// repo.maven.apache.org/maven2):连接被拒绝:否进一步的信息http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.pom

它与代理还是防火墙有关?我该怎么办才能修复它?

pom.xml maven maven-compiler-plugin

8
推荐指数
1
解决办法
5万
查看次数

在运行Maven集成测试时获得"在分支目标处期望堆栈图"

我在这个版本的Java上使用Maven 3.2.3

davea$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

我跑的时候

mvn clean install
Run Code Online (Sandbox Code Playgroud)

我在集成测试中遇到如下错误...

testFindSampleUsersByCodeAscByDefault(org.mainco.subco.user.service.SampleUserService2IT)  Time elapsed: 2.204 sec  <<< ERROR!
java.lang.VerifyError: Expecting a stackmap frame at branch target 57
Exception Details:
  Location:
    org/mainco/subco/user/service/SampleUserServiceImpl$ValueComparator.compare(Lorg/mainco/subco/user/domain/User;Lorg/mainco/subco/user/domain/User;)I @10: ifnull
  Reason:
    Expected stackmap frame at this location.
  Bytecode:
    0x0000000: 2ab4 001b 2bb9 002e 0200 c600 2f2a b400
    0x0000010: 1b2b b900 2e02 00c0 0030 b600 34c6 001c
    0x0000020: 2ab4 001b 2bb9 002e 0200 c000 30b6 0034
    0x0000030: b600 39b6 003e a700 0512 404e 2ab4 001b
    0x0000040: 2cb9 002e …
Run Code Online (Sandbox Code Playgroud)

verifyerror java-8 maven-failsafe-plugin maven-compiler-plugin

8
推荐指数
1
解决办法
8196
查看次数

如何使maven-compiler-plugin不会隐藏错误源位置

也许有一个maven-compiler-plugin选择,但我没有找到它.

javac直接运行并打印错误时,在消息的第一行之后,它会在指向错误位置的下一行显示受影响的源代码行.它看起来像这样:

com/invariantproperties/udt/sql/RationalUDT.java:324: error: cannot find symbol
    public static boolean lessThan(RRationalUDT p, double q) {
                                   ^
  symbol:   class RRationalUDT
  location: class RationalUDT
Run Code Online (Sandbox Code Playgroud)

注意直接指向我拼写错误类型名称的行.它maven-compiler-plugin显示如下:

[ERROR] /var/tmp/pljava-udt-type-extension/java/src/main/java/com/invariantproperties/udt/sql/RationalUDT.java:[324,36] cannot find symbol
  symbol:   class RRationalUDT
  location: class com.invariantproperties.udt.sql.RationalUDT
Run Code Online (Sandbox Code Playgroud)

注意它摆脱了实际指向错误的行.(这是使用Oracle JDK 7.)

好的,所以起初我认为这个较旧的问题会得到答案,因为它也maven-compiler-plugin没有显示整个错误消息,并且说修复程序是更新到maven-compiler-plugin3.1版.

但是对于这个问题,我尝试了2.4,3.1和3.5而没有任何改进.显示错误的行总是丢失.

这适用于任何javac错误.在示例中,我拼错了一个符号,只是为了得到与旧问题所讨论的相同的错误.但我可以修复那个并制作另一个(这个来自javac注释处理器):

com/invariantproperties/udt/sql/RationalUDT.java:324: error: No known mapping to an SQL type
    public static boolean lessThan(RationalUDT p, double q) {
                                               ^ …
Run Code Online (Sandbox Code Playgroud)

java maven-3 maven maven-compiler-plugin

8
推荐指数
1
解决办法
418
查看次数

Eclipse/Idea忽略了Maven Java版本配置

我有:

<build>
  <pluginManagement>
     <plugins>
        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <version>3.1</version>
           <configuration>
              <source>1.6</source>
              <target>1.6</target>
           </configuration>
        </plugin>
     </plugins>
  </pluginManagement>
</build>
Run Code Online (Sandbox Code Playgroud)

然而我宣布:

public enum DirectoryWatchService {

    INSTANCE;

    private java.util.Optional<String> test;
    private java.nio.file.Files files;
}
Run Code Online (Sandbox Code Playgroud)

Eclipse没有打扰.IntelliJ也不是.即使是Maven也不会打扰.我甚至可以做一个mvn清洁包.在没有任何警告的情况下构建糟糕的东西.

java eclipse intellij-idea maven maven-compiler-plugin

8
推荐指数
1
解决办法
2298
查看次数

如何处理自动模块中的拆分包?

我目前正在测试将现有应用程序迁移到Jigsaw Modules.我的一个模块使用ElasticSearch及其Groovy插件.

  • org.elasticsearch:elasticsearch
  • org.elasticsearch.module:郎常规

不幸的是,他们共享一个拆分包,所以mvn install给我:

x从lang.groovy和elasticsearch读取包org.elasticsearch.script.groovy

对于描述符中的每个必需模块,其中x是每个模块的名称.

我假设一个较新的elasticsearch版本将在Java 9最终版本的时候取消拆分包,但是通常有一种方法来处理遗留依赖项中的拆分包吗?

我希望能够在类路径而不是模块路径上有那些,但是在邮件列表上阅读这个对话后,似乎没有办法告诉Maven编译器这样做.


maven 3.3.9 - maven-compiler-plugin 3.6.0 - jdk9-ea + 149 - elasticsearch 2.3.3

maven java-platform-module-system maven-compiler-plugin java-9

8
推荐指数
1
解决办法
601
查看次数

如何使用maven-compiler-plugin配置Lombok?

我在项目中的Maven中有一个根模块和子模块。我正在尝试使用龙目岛。我已经添加了

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.12</version>
    <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

根pom.xml。在子模块中,我有一个带有Lombok批注的类。当我尝试建立项目时,我得到了很多

找不到标志

我试图在这里打电话给getters和setters。

我试图在根pom和子pom中使用具有相同版本(1.16.12)的lombok -maven-plugin,以及delombok,并将带注释的类移至src / main / lombok,我已经遍历了几乎所有问题因此,请尝试所有变体,但不会成功。

我正在使用3.6.1版本的Maven 3,Java 8,maven-compiler-plugin。

我应该如何配置项目以使用lombok?也许我做错了什么。

java maven lombok maven-compiler-plugin

8
推荐指数
3
解决办法
1万
查看次数

如何排除易于出错的单元测试?

maven-compiler-plugin:3.8.0:testCompile @ foo-child运行时,线程转储显示容易出错正在一个非常长的时间。我相信有一个容易出错的错误,但是现在我宁愿不要在单元测试上运行容易出错的错误。

我有一个父pom.xml:

<modules>
  <module>foo-child</module>
</modules>
<dependencyManagement>
  <dependency>
    <groupId>com.google.errorprone</groupId>
    <artifactId>error_prone_annotations</artifactId>
  </dependency>
  // also has dependency for io.norberg auto-matter and com.google.auto.value auto-value
</dependencyManagement>
<build>
  <plugins>
     <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        // also has annotationProcessorPaths configuration for auto-matter and auto-value
     </plugin>
  </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

有什么我可以放入foo-child pom.xml中的内容,它可以让我完全排除maven-compiler-plugin:3.8.0:testCompile @ foo-child在运行之外。

我不能完全排除容易出错的原因,因为番石榴之类的其他东西都取决于它。

编辑:好像这个用户正在尝试解决相同的问题。您知道如何将那里提供的解决方案应用于我的案件吗?

java maven-compiler-plugin errorprone

8
推荐指数
1
解决办法
378
查看次数

如何将Maven默认配置为使用JDK6,而根据需要配置JDK7

我的系统上安装了JDK 1.6和1.7(Linux,在/ opt目录下).我在我的路径中添加了JDK 1.6的bin目录,因此这是默认情况下使用的Java版本.

我正在开发一个需要JDK 1.7的项目和一些需要1.6的项目.以前我在Eclipse中设置了JDK 1.7设置,但是我想将这个项目转换为Maven,这样每个人都可以使用他们喜欢的编辑器.

是否可以在Maven安装/配置(而不是POM文件)中指定1.7位置,以便默认情况下使用1.6,而在POM中指定项目时需要1.7?据我所知,每个从事项目的人都应该在他们的POM文件中有相同的内容,所以我不愿意在这里设置Java 7目录的位置(因为它在每个人的机器上都会有所不同).

$ mvn --version
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 13:51:28+0000)
Maven home: /opt/apache-maven-3.0.5
Java version: 1.6.0_45, vendor: Sun Microsystems Inc.
Java home: /opt/jdk1.6.0_45/jre
Default locale: en_GB, platform encoding: UTF-8
OS name: "linux", version: "3.8.0-27-generic", arch: "amd64", family: "unix"
Run Code Online (Sandbox Code Playgroud)

添加以下内容:

<build>
    <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <source>1.7</source>
            <target>1.7</target>
        </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.6</version>
            <configuration>
                <outputDirectory>${project.build.outputDirectory}/resources</outputDirectory>
            </configuration>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

结果是:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project golemlite: Fatal …
Run Code Online (Sandbox Code Playgroud)

maven maven-compiler-plugin

7
推荐指数
1
解决办法
1万
查看次数

Java 8:"UseSplitVerifier"的等价物是什么?

我在Mac 10.9.5上使用Maven 3.2.3并将其用于我的编译器插件...

                                    <plugin>
                                            <groupId>org.apache.maven.plugins</groupId>
                                            <artifactId>maven-compiler-plugin</artifactId>
                                            <version>3.1</version>
                                            <configuration>
                                                    <source>1.8</source>
                                                    <target>1.8</target>
                                                    <compilerArgument>-proc:none</compilerArgument>
                                                    <fork>true</fork>
                                                    <!-- <compilerId>eclipse</compilerId>--> 
                                            </configuration>
                                            <executions>
                                                    <execution>
                                                            <id>default-testCompile</id>
                                                            <phase>test-compile</phase>
                                                            <goals>
                                                                    <goal>testCompile</goal>
                                                            </goals>
                                                    </execution>
                                            </executions>
                                    </plugin>
Run Code Online (Sandbox Code Playgroud)

我有我的surefire-plugin配置...

                    <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-surefire-plugin</artifactId>
                            <version>2.17</version>
                            <configuration>
                                    <reuseForks>true</reuseForks>
                                    <argLine>-Xmx2048m -XX:MaxPermSize=512M -XX:-UseSplitVerifier ${argLine}</argLine>
                                    <skipTests>${skipAllTests}</skipTests>
                            </configuration>
                    </plugin>
Run Code Online (Sandbox Code Playgroud)

但是,在运行"mvn clean install"时,我收到此警告......

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option UseSplitVerifier; support was removed in 8.0
Run Code Online (Sandbox Code Playgroud)

什么是Java 8等效的"UseSplitVerifier"?

warnings maven-surefire-plugin java-8 maven-compiler-plugin

7
推荐指数
1
解决办法
1万
查看次数

JavaFX 应用程序中“maven-compiler-plugin”的“&lt;configuration&gt;”上的“&lt;release&gt;”元素是什么

我使用org.openjfx:javafx-archetype-simpleMaven 原型启动了我的第一个 JavaFX 项目。

\n\n

生成的 POM:

\n\n
<project xmlns = "http://maven.apache.org/POM/4.0.0"\n         xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"\n         xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">\n    <modelVersion>4.0.0</modelVersion>\n    <groupId>com.example.invoicing</groupId>\n    <artifactId>Invoicer</artifactId>\n    <version>1.0-SNAPSHOT</version>\n    <properties>\n        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n        <maven.compiler.source>14</maven.compiler.source>\n        <maven.compiler.target>14</maven.compiler.target>\n    </properties>\n    <dependencies>\n        <dependency>\n            <groupId>org.openjfx</groupId>\n            <artifactId>javafx-controls</artifactId>\n            <version>14</version>\n        </dependency>\n    </dependencies>\n    <build>\n        <plugins>\n            <plugin>\n                <groupId>org.apache.maven.plugins</groupId>\n                <artifactId>maven-compiler-plugin</artifactId>\n                <version>3.8.1</version>\n                <configuration>\n                    <release>14</release>   ???\n                </configuration>\n            </plugin>\n            <plugin>\n                <groupId>org.openjfx</groupId>\n                <artifactId>javafx-maven-plugin</artifactId>\n                <version>0.0.4</version>\n                <configuration>\n                    <mainClass>com.example.invoicing.App</mainClass>\n                </configuration>\n            </plugin>\n        </plugins>\n    </build>\n</project>\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x9e\xa5插件的<release>14</release>行的目的是什么?<configuration><artifactId>maven-compiler-plugin</artifactId>

\n\n

我找到了 Maven 编译器插件的文档Compiling Your Java Sources。但它只提到<!-- put your configurations here -->。所以我对这里的具体配置选项一无所知。 …

java javafx maven maven-compiler-plugin openjfx

7
推荐指数
2
解决办法
4710
查看次数