首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven 3.5.0正在抛出ArrayIndexOutOfBoundsException,但使用Maven 3.3.9构建

Maven 3.5.0正在抛出ArrayIndexOutOfBoundsException,但使用Maven 3.3.9构建
EN

Stack Overflow用户
提问于 2017-06-23 18:19:17
回答 1查看 2K关注 0票数 1

我的团队有一个多模块的Maven项目,它使用Maven 3.3.9构建得很好,但在使用Maven 3.5.0时失败。在这两种情况下(即maven版本),构建都使用java 8_131。故障发生在: MacOS、Sierra10.12.6和CENTOS 7。一个单独的非多模块项目在这两个版本的Maven下都可以很好地构建。

我已经根据Maven CI友好版本文档用flatten-maven-plugin更新了父POM。我在这里和其他地方查过了其他问题,但没有找到答案。还有另一个未回答的问题:它的根源可能是同一个问题。

如果能帮助解决这个问题,我将不胜感激。

pom.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.company</groupId>
    <artifactId>company-api-parent-pom</artifactId>
    <version>${revision}${changelist}</version>
    <packaging>pom</packaging>

    <properties>
        <revision>0.9.7</revision>
        <changelist>-SNAPSHOT</changelist>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>

        <jetty.version>9.3.12.v20160915</jetty.version>
        <jersey.version>2.23.2</jersey.version>
        <spring.version>4.3.3.RELEASE</spring.version>
        <slf4j.version>1.7.21</slf4j.version>
        <logback-version>1.1.7</logback-version>
        <metrics-version>3.1.2</metrics-version>
        <apache-commons-lang3-version>3.5</apache-commons-lang3-version>
        <junit.version>4.12</junit.version>
        <mockito.version>2.0.42-beta</mockito.version>
        <powermock.version>1.6.5</powermock.version>
        <aspectj.version>1.8.9</aspectj.version>
        <enunciate-plugin-version>2.8.0</enunciate-plugin-version>
        <postgres.jdbc.driver.version>9.4.1211</postgres.jdbc.driver.version>
        <mybatis.version>3.4.1</mybatis.version>
        <mybatis.spring.version>1.3.0</mybatis.spring.version>
        <c3p0.version>0.9.5.2</c3p0.version>
        <commons.beanutils.version>1.9.3</commons.beanutils.version>
        <aws.java.sdk.bom.version>1.11.123</aws.java.sdk.bom.version>
        <hibernate.validator.version>5.3.1.Final</hibernate.validator.version>
        <commons-validator.version>1.5.1</commons-validator.version>
        <joda.time.version>2.9.5</joda.time.version>
        <liquibase.version>3.5.3</liquibase.version>
        <jolokia.version>1.3.5</jolokia.version>
        <javax.el.version>2.2.4</javax.el.version>
        <jackson.annotations.version>2.5.4</jackson.annotations.version>
        <janino.version>3.0.6</janino.version>
        <open.csv.version>3.9</open.csv.version>
        <jedis.version>2.9.0</jedis.version>
    </properties>

    <modules>
        <module>company-api-app</module>
        <module>company-api-java-client</module>
        <module>company-api-dtos</module>
    </modules>

    <build>
        <pluginManagement>
            <plugins>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>flatten-maven-plugin</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <updatePomFile>true</updatePomFile>
                    </configuration>
                    <executions>
                        <execution>
                            <id>flatten</id>
                            <phase>process-resources</phase>
                            <goals>
                                <goal>flatten</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>flatten.clean</id>
                            <phase>clean</phase>
                            <goals>
                                <goal>clean</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.6.1</version>
                    <configuration>
                        <source>${maven.compiler.source}</source>
                        <target>${maven.compiler.target}</target>
                        <encoding>UTF-8</encoding>
                        <compilerArgument>-Xlint:all</compilerArgument>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.0.1</version>
                    <executions>
                        <execution>
                            <id>bundle-sources</id>
                            <phase>package</phase>
                            <goals>
                                <!-- produce source artifact for main project sources -->
                                <goal>jar-no-fork</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.0.2</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>3.0.0</version>
                    <configuration>
                    <createDependencyReducedPom>true</createDependencyReducedPom>
                        <filters>
                            <filter>
                                <artifact>*:*</artifact>
                                <excludes>
                                    <exclude>META-INF/*.SF</exclude>
                                    <exclude>META-INF/*.DSA</exclude>
                                    <exclude>META-INF/*.RSA</exclude>
                                </excludes>
                            </filter>
                        </filters>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                            <configuration>
                                <transformers>
                                    <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                        <manifestEntries>
                                            <Main-Class>com.companycyber.clientapi.ClientApiApplication</Main-Class>
                                        </manifestEntries>
                                    </transformer>
                                    <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                        <resource>META-INF/spring.handlers</resource>
                                    </transformer>
                                    <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                        <resource>META-INF/spring.schemas</resource>
                                    </transformer>
                                </transformers>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.10.4</version>
                    <executions>
                        <execution>
                            <id>attach-javadocs</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                            <configuration>
                                <additionalparam>-Xdoclint:none</additionalparam>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>aspectj-maven-plugin</artifactId>
                    <version>1.10</version>
                    <executions>
                        <execution>
                            <id>compile</id>
                            <configuration>
                                <source>${maven.compiler.source}</source>
                                <target>${maven.compiler.target}</target>
                                <complianceLevel>${maven.compiler.target}</complianceLevel>
                                <verbose>false</verbose>
                                <outxml>true</outxml>
                                <aspectLibraries>
                                    <aspectLibrary>
                                    <groupId>org.springframework</groupId>
                                        <artifactId>spring-aspects</artifactId>
                                    </aspectLibrary>
                                </aspectLibraries>
                            </configuration>
                            <goals>
                                <goal>compile</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>test-compile</id>
                            <configuration>
                                <source>${maven.compiler.source}</source>
                                <target>${maven.compiler.target}</target>
                                <complianceLevel>${maven.compiler.target}</complianceLevel>
                                <verbose>false</verbose>
                                <aspectLibraries>
                                    <aspectLibrary>
                                        <groupId>org.springframework</groupId>
                                        <artifactId>spring-aspects</artifactId>
                                    </aspectLibrary>
                                </aspectLibraries>
                            </configuration>
                            <goals>
                                <goal>test-compile</goal>
                            </goals>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>org.aspectj</groupId>
                            <artifactId>aspectjtools</artifactId>
                            <version>${aspectj.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>

                <!-- FindBugs Static Analysis -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>3.0.4</version>
                    <configuration>
                        <effort>Max</effort>
                        <threshold>Low</threshold>
                        <failOnError>true</failOnError>
                        <includeFilterFile>${session.executionRootDirectory}/findbugs-security-include.xml</includeFilterFile>
                        <excludeFilterFile>${session.executionRootDirectory}/findbugs-security-exclude.xml</excludeFilterFile>
                        <plugins>
                            <plugin>
                                <groupId>com.h3xstream.findsecbugs</groupId>
                                <artifactId>findsecbugs-plugin</artifactId>
                                <version>1.6.0</version>
                            </plugin>
                        </plugins>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.8</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>

            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>flatten-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <updatePomFile>true</updatePomFile>
                </configuration>
                <executions>
                    <execution>
                        <id>flatten</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>flatten</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>flatten.clean</id>
                        <phase>clean</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencyManagement>
        <dependencies>

            <!-- Jersey -->
            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${jersey.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.glassfish.hk2.external</groupId>
                        <artifactId>aopalliance-repackaged</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.media</groupId>
                <artifactId>jersey-media-json-jackson</artifactId>
                <version>${jersey.version}</version>
            </dependency>

            <!-- Validation -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>${hibernate.validator.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.el</groupId>
                <artifactId>javax.el-api</artifactId>
                <version>${javax.el.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.web</groupId>
                <artifactId>javax.el</artifactId>
                <version>${javax.el.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-validator</groupId>
                <artifactId>commons-validator</artifactId>
                <version>${commons-validator.version}</version>
            </dependency>

            <!-- Enunciate -->
            <dependency>
                <groupId>com.webcohesion.enunciate</groupId>
                <artifactId>enunciate-core-annotations</artifactId>
                <version>${enunciate-plugin-version}</version>
            </dependency>

            <!-- Joda -->
            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>${joda.time.version}</version>
            </dependency>

            <!-- Apache Commons -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${apache-commons-lang3-version}</version>
            </dependency>

            <!-- Unit testing -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${mockito.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-module-junit4</artifactId>
                <version>${powermock.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-api-mockito2</artifactId>
                <version>${powermock.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-bom</artifactId>
                <version>${aws.java.sdk.bom.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <repositories>
        <repository>
            <id>central</id>
            <url>https://artifactory.company.loc/artifactory/libs-release/</url>
        </repository>
        <repository>
            <id>snapshots</id>
            <url>https://artifactory.company.loc/artifactory/libs-snapshot/</url>
        </repository>
        <repository>
            <id>maven-central</id>
            <url>https://repo.maven.apache.org/maven2/</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>central</id>
            <name>libs-release</name>
            <url>https://artifactory.company.loc/artifactory/libs-release/</url>
        </pluginRepository>
        <pluginRepository>
            <snapshots />
            <id>snapshots</id>
            <name>libs-snapshot</name>
            <url>https://artifactory.company.loc/artifactory/libs-snapshot</url>
        </pluginRepository>
    </pluginRepositories>

    <distributionManagement>
        <repository>
            <id>central</id>
            <name>artifactory.company.loc-releases</name>
            <url>https://artifactory.company.loc/libs-release</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>artifactory.company.loc-snapshots</name>
            <url>https://artifactory.company.loc/libs-snapshot</url>
        </snapshotRepository>
    </distributionManagement>

    <scm>
        <connection>scm:git:ssh://git@git-instance/home/git/company.client-api.git</connection>
        <developerConnection>scm:git:ssh://git@git-instance/home/git/company.client-api.git</developerConnection>
        <tag>HEAD</tag>
    </scm>

</project>

dtos (儿童) pom.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>company-api-parent-pom</artifactId>
        <groupId>com.company</groupId>
        <version>${revision}${changelist}</version>
    </parent>

    <artifactId>company-api-dtos</artifactId>

    <dependencies>
        <!-- Jersey -->
        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-jackson</artifactId>
        </dependency>

        <!-- Validation -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.el</groupId>
            <artifactId>javax.el-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.glassfish.web</groupId>
            <artifactId>javax.el</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-validator</groupId>
            <artifactId>commons-validator</artifactId>
        </dependency>

        <!-- Enunciate -->
        <dependency>
            <groupId>com.webcohesion.enunciate</groupId>
            <artifactId>enunciate-core-annotations</artifactId>
        </dependency>

        <!-- Apache Commons -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${apache-commons-lang3-version}</version>
        </dependency>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
        </dependency>
        <!-- Unit testing -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito2</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>cz.jirutka.validator</groupId>
            <artifactId>validator-collection</artifactId>
            <version>2.2.0</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
EN

回答 1

Stack Overflow用户

发布于 2017-06-25 21:18:12

结果发现,maven 3.5.0中存在一个已解决的问题,在以前版本的Maven中,pom内容被复制:

<project>...</project><project>...</project>

在一些下载的pom.xml文件中,但这并没有在以前的版本中造成问题(令人惊讶)。这些损坏的pom.xml文件将在Maven升级到3.5.0后引发此问题。

如果遇到此问题,只需删除.m2/存储库下的文件,并允许Maven重新下载损坏的pom文件。

Maven bug MNG-6216 \ [https://issues.apache.org/jira/browse/MNG-6216]最初使用了异常切换的前两个单词(即IndexArrayOutOfBounds),因此在我的搜索中从未出现过它。我要求把它们颠倒过来,以与实际的例外情况相匹配,他们也照做了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44727714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档