2012-09-19 65 views
2

我創建了一個Maven項目,其中有一些依賴於庫(.jar文件)的Maven項目,它們不在Maven中心。我們擁有的內部存儲庫正在脫機,並且我們還沒有被授權創建新的存儲庫,所以我修改了POM,以便在激活某個配置文件時在每個文件上使用install:install-file。它似乎在我的機器上工作,但它可能無法工作,因爲.jars已經在我的存儲庫中。Maven安裝:安裝文件似乎不起作用

本週我們有一名新員工開始工作,我試圖通過觸發配置文件來幫助他安裝依賴關係,雖然調試跟蹤將這些目標列爲計劃(並且mvn help:active-profiles顯示正在激活的配置文件),但是,它不起作用。這些目錄是在存儲庫中創建的,但只創建了一個用於.jar和.pom的.lastupdated文件。

我們得到的錯誤是POM找不到給定的工件。這是預料之中的,因爲我們在插件的執行中使用<generatePom>true</generatePom>

任何想法,爲什麼這可能無法正常工作?

這裏的POM的相關章節:

<profiles> 
    <profile> 
     <id>self-contained</id> 
     <activation> 
      <property> 
       <name>installBundledJars</name> 
      </property> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-install-plugin</artifactId> 
        <version>2.3.1</version> 
        <executions> 
         <execution> 
          <id>installCaseControlUpdateAPI</id> 
          <phase>generate-resources</phase> 
          <goals> 
           <goal>install-file</goal> 
          </goals> 
          <configuration> 
           <file>${basedir}/lib/CaseControlUpdateAPI.jar</file> 
           <groupId>com.west.thomson.contech</groupId> 
           <artifactId>CaseControlUpdateAPI</artifactId> 
           <version>1.0</version> 
           <packaging>jar</packaging> 
           <generatePom>true</generatePom> 
          </configuration> 
         </execution> 
         <execution> 
          <id>installMQ</id> 
          <phase>generate-resources</phase> 
          <goals> 
           <goal>install-file</goal> 
          </goals> 
          <configuration> 
           <file>${basedir}/lib/com.ibm.mq-5.304.jar</file> 
           <groupId>com.ibm</groupId> 
           <artifactId>mq</artifactId> 
           <version>5.304</version> 
           <packaging>jar</packaging> 
           <generatePom>true</generatePom> 
          </configuration> 
         </execution> 
         <execution> 
          <id>installMQJMS</id> 
          <phase>generate-resources</phase> 
          <goals> 
           <goal>install-file</goal> 
          </goals> 
          <configuration> 
           <file>${basedir}/lib/com.ibm.mqjms-5.304.jar</file> 
           <groupId>com.ibm</groupId> 
           <artifactId>mqjms</artifactId> 
           <version>5.304</version> 
           <packaging>jar</packaging> 
           <generatePom>true</generatePom> 
          </configuration> 
         </execution> 
         <execution> 
          <id>installJADABAS</id> 
          <phase>generate-resources</phase> 
          <goals> 
           <goal>install-file</goal> 
          </goals> 
          <configuration> 
           <file>${basedir}/lib/jadabas.jar</file> 
           <groupId>com.softwareag</groupId> 
           <artifactId>jadabas</artifactId> 
           <version>1.0</version> 
           <packaging>jar</packaging> 
           <generatePom>true</generatePom> 
          </configuration> 
         </execution> 
         <execution> 
          <id>installOJDBC</id> 
          <phase>generate-resources</phase> 
          <goals> 
           <goal>install-file</goal> 
          </goals> 
          <configuration> 
           <file>${basedir}/lib/ojdbc14.jar</file> 
           <groupId>oracle</groupId> 
           <artifactId>ojdbc14</artifactId> 
           <version>10g</version> 
           <packaging>jar</packaging> 
           <generatePom>true</generatePom> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
    </profiles> 
+0

您可以重命名您的本地存儲庫並重新測試安裝以查看它是否可用,但您需要遠程存儲庫來下載maven插件等。此外,如果遠程存儲庫已脫機,則無法工作,您必須告訴你的管理層/老闆,每個人都應該改變它的責任。以這種方式工作是沒有意義的。 – khmarbaise

+0

對不起,我應該更清楚。我們對我們的大部分插件使用maven central,並且工作正常。這個項目是在知道內部存儲庫已脫機的情況下創建的,所以我們沒有在我們的POM中指定它(這完全是有意的)。我們試圖使用'install:install-file'作爲解決方法,因爲我們確實有可用的.jar文件。 –

+0

最簡單的解決方案是設置像Nexus,Artifactory之類的回購管理器或任何可以消除這些問題的東西。但是這當然不能回答你的問題。 – khmarbaise

回答

0

兩個可能的問題,我能想到的, - 檢查您是否已經在指定的路徑中的庫。 - 檢查.m2倉庫和運行mvn cmd的項目位置的權限。