我需要在struts2-jquery网格插件中做一些修改。我从https://struts2-jquery.googlecode.com/svn/trunk下载了源代码。我改变了这个来源的逻辑。当我使用 mvn package 执行我的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>
根据我的理解,父标记会查看另一个pom.xml文件。我试图在父标记中添加相对路径,但它不起作用。我没有在https://struts2-jquery.googlecode.com/svn/trunk中看到父pom.xml。
我删除了父标记并将其添加到groupid,artifactId&amp;版本给出3.5.0-SNAPSHOT然后它也失败了。我再次更改了3.4.0而不是3.5.0-SNAPSHOT然后它的build .jar文件。但它没有影响我的变化。
那么如何使用代码的最新更改来运行pom文件。有没有替代方法来创建.jar文件而不是运行pom.xml文件。
答案 0 :(得分:0)
根据错误,它尝试下载com.jgeppert.struts2.jquery:struts2-jquery-grid-plugin:3.5.0-SNAPSHOT
,因为在maven存储库中没有这样的版本。
用下面的依赖替换你的pom,它会很好。
<dependency>
<groupId>com.jgeppert.struts2.jquery</groupId>
<artifactId>struts2-jquery-plugin</artifactId>
<version>3.4.0</version>
</dependency>
答案 1 :(得分:0)
构建失败的原因是因为存在无法在本地存储库或当前 reactor构建。术语reactor构建指的是运行mvn
的项目和所有子项目,由pom中的<module>
元素引用。
在您的情况下,您需要:
mvn install
将父pom和struts2-jquery-plugin插入本地存储库,然后再尝试你正在做的事情; 第一种方法:如果您转到结帐的顶级,即trunk
,然后运行:
mvn -pl .,struts2-jquery-plugin install
它会将父pom和struts2-jquery-plugin的快照版本安装到本地存储库中。然后,您应该能够在网格插件目录中运行mvn package
。
第二种方法:从trunk
开始,您可以运行:
mvn -am -pl struts2-jquery-grid-plugin package
这将构建网格插件以及在reactor构建中找到的任何依赖项,即父pom和struts2-jquery-plugin本身。