Java 在使用maven的最新jar中更改无效

Java 在使用maven的最新jar中更改无效,java,maven,Java,Maven,我需要在struts2 jquery网格插件中做一些增强。我从下载源代码。我改变了这个来源的逻辑。当我使用mvn包执行POM.xml文件时。我收到了例外 "The project com.jgeppert.struts2.jquery:struts2-jquery-grid-plugin:3.5.0-SNAPSHOT have 1 error Non-resolvable parent POM:could not find artifact com.jgeppert

我需要在struts2 jquery网格插件中做一些增强。我从下载源代码。我改变了这个来源的逻辑。当我使用mvn包执行POM.xml文件时。我收到了例外

 "The project com.jgeppert.struts2.jquery:struts2-jquery-grid-plugin:3.5.0-SNAPSHOT 
    have 1 error

        Non-resolvable parent POM:could not find artifact com.jgeppert.struts2.jquery:struts2-
jquery:pom:3.5.0-snapshot and 'Parent.relativePath' points at wrong local POM @line 5,c
olumn 13  "
我的pom.xml文件如下所示

<?xml version="1.0"?>
<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
       <groupId>com.jgeppert.struts2.jquery</groupId>
        <artifactId>struts2-jquery</artifactId>
        <version>3.5.0-SNAPSHOT</version>
    </parent>
    <artifactId>struts2-jaquery-grid-plugin</artifactId>
    <name>Struts 2 jQuery Grid Plugin</name>
    <packaging>jar</packaging>

    <scm>
        <connection>scm:svn:http://struts2-jquery.googlecode.com/svn/trunk/struts2-jquery-grid-plugin</connection>
        <developerConnection>scm:svn:https://struts2-jquery.googlecode.com/svn/trunk/struts2-jquery-grid-plugin</developerConnection>
        <url>http://code.google.com/p/struts2-jquery/source/browse/</url>
    </scm>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.myfaces.tobago</groupId>
                <artifactId>maven-apt-plugin</artifactId>
                <version>1.0.39</version>
                <configuration>
                    <A>
                        uri=/struts-jquery-grid-tags,
                        tlibVersion=${tlib.version},
                        jspVersion=2.0,
                        shortName=sjg,
                        displayName="Struts2 jQuery Grid Tags",
                        outFile=${basedir}/target/classes/META-INF/struts-jquery-grid-tags.tld,
                        description="Struts2 tags based on jQuery and jqGrid.",
                        outTemplatesDir=${basedir}/src/site/docs
                    </A>
                    <resourceTargetPath>target</resourceTargetPath>
                    <fork>false</fork>
                    <force>true</force>
                    <nocompile>true</nocompile>
                    <showWarnings>true</showWarnings>
                    <factory>
                        org.apache.struts.annotations.taglib.apt.TLDAnnotationProcessorFactory
                    </factory>
                    <target>1.5</target>
                    <includes>
                        <include>**/*.java</include>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencies>

        <!-- Core -->

        <dependency>
            <groupId>com.jgeppert.struts2.jquery</groupId>
            <artifactId>struts2-jquery-plugin</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts-annotations</artifactId>
            <version>1.0.4</version>
            <optional>true</optional>
        </dependency>

        <!-- JSP API -->

        <!-- struts-annotations must be in compile scope for maven-apt-plugin to
             function correctly. Marking it optional to exclude it from transitive dependency resolution -->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>${struts2.version}</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.5</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

</project>

4.0.0
com.jgeppert.struts2.jquery

我删除了父标记并将其添加到groupid、artifactId和version中,并以3.5.0-SNAPSHOT的形式给出,然后它也失败了。我再次更改了3.4.0,而不是3.5.0-SNAPSHOT,然后是它的build.jar文件。但这并没有影响我的改变


因此,如何使用最新的代码更改运行pom文件。是否有其他方法来创建.jar文件而不是运行pom.xml文件。

根据错误,它尝试下载
com.jgeppert.struts2.jquery:struts2 jquery网格插件:3.5.0-SNAPSHOT
,因为maven存储库中没有类似的版本

用下面的依赖项替换pom,它将构建良好

<dependency>
    <groupId>com.jgeppert.struts2.jquery</groupId>
    <artifactId>struts2-jquery-plugin</artifactId>
    <version>3.4.0</version>
</dependency>

com.jgeppert.struts2.jquery
struts2 jquery插件
3.4.0

构建失败的原因是,存在在本地存储库或当前反应堆构建中找不到的依赖项(即父pom和struts2 jquery插件)。术语reactor build指的是运行
mvn
的项目以及pom中
元素引用的所有子项目

在您的情况下,您需要:

  • mvn将父pom和struts2 jquery插件安装到您的本地存储库中,然后再次尝试所做的操作
    
  • 更改目录(即主干目录),并将网格插件构建为reactor构建的一部分,该构建包括父pom和struts2 jquery插件
第一种方法:如果您进入结帐的顶层,即
主干
,然后运行:

mvn -pl .,struts2-jquery-plugin install
它将把父pom和struts2 jquery插件的快照版本安装到本地存储库中。然后,您应该能够在网格插件目录中运行
mvn包

第二次进近:从
中继
,您可以运行:

mvn -am -pl struts2-jquery-grid-plugin package

这将构建网格插件以及reactor构建中发现的任何依赖项,即父pom和struts2 jquery插件本身。

父pom位于存储库中: