2012-10-29 35 views
0

我需要在struts2-jquery網格插件中做一些增量。我從https://struts2-jquery.googlecode.com/svn/trunk下載了源代碼。我改變了這個來源的邏輯。當我執行使用MVN包我pom.xml文件。我收到異常使用maven的最新jar中的變化不起作用

"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。

我刪除了父標籤並將其添加到組識別符號,artifactId的&版本得到爲3.5.0,快照,那麼它也失敗了。我再次改變3.4.0而不是3.5.0-SNAPSHOT,然後修改.jar文件。但它沒有影響我的改變。

那麼如何用代碼的最新更改來運行pom文件。是否有其他選擇來創建.jar文件而不是運行pom.xml文件。

+0

父pom在存儲庫中:http://struts2-jquery.googlecode.com/svn/trunk/pom.xml –

回答

0

構建失敗的原因是因爲有不能在本地資源庫中找到,或者在當前反應器的構建依賴(即父POM和struts2的-jQuery的插件) 。術語反應堆建設是指從中運行mvn和所有子工程的項目,通過在POM <module>元素引用。

在你的情況,你要麼需要:

  • mvn install父POM和struts2的,jQuery的插件安裝到你的本地庫,並嘗試你又在做什麼;
  • 更改一個目錄(即中繼目錄),並構建網格插件作爲包含父pom和struts2-jquery-plugin的反應器構建的一部分。

第一種方法:如果你去結帳,即trunk的頂層,然後運行:

mvn -pl .,struts2-jquery-plugin install 

它將安裝父POM和struts2-的快照版本jquery插件到你的本地倉庫。然後,您應該能夠在網格插件目錄中運行mvn package

第二條本辦法:從trunk,你可以運行:

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

這將構建電網與反應器中生成發現任何依賴插件一起,即父POM,和Struts2的-jquery-插件本身。

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>