我創建了一個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>
您可以重命名您的本地存儲庫並重新測試安裝以查看它是否可用,但您需要遠程存儲庫來下載maven插件等。此外,如果遠程存儲庫已脫機,則無法工作,您必須告訴你的管理層/老闆,每個人都應該改變它的責任。以這種方式工作是沒有意義的。 – khmarbaise
對不起,我應該更清楚。我們對我們的大部分插件使用maven central,並且工作正常。這個項目是在知道內部存儲庫已脫機的情況下創建的,所以我們沒有在我們的POM中指定它(這完全是有意的)。我們試圖使用'install:install-file'作爲解決方法,因爲我們確實有可用的.jar文件。 –
最簡單的解決方案是設置像Nexus,Artifactory之類的回購管理器或任何可以消除這些問題的東西。但是這當然不能回答你的問題。 – khmarbaise