我是Maven的新手,正致力於爲我的公司創建一個構建。我們不想連接到Maven Central Repository,我們對src和測試代碼有不同的目錄結構,而不是super pom中指定的目錄結構。我認爲處理這個問題的最好方法是創建一個客戶超級POM,但我想知道 - 我在哪裏放置超級POM,以便我的項目可以參考它?它是否在版本庫中?如果是這樣,在哪裏?Maven超級POM
感謝, 傑夫
我是Maven的新手,正致力於爲我的公司創建一個構建。我們不想連接到Maven Central Repository,我們對src和測試代碼有不同的目錄結構,而不是super pom中指定的目錄結構。我認爲處理這個問題的最好方法是創建一個客戶超級POM,但我想知道 - 我在哪裏放置超級POM,以便我的項目可以參考它?它是否在版本庫中?如果是這樣,在哪裏?Maven超級POM
感謝, 傑夫
我的建議是,你創建父POM從哪個項目可以得到您的設置。這個父母POM只是另一個Maven 2項目,但是類型是「pom」而不是「jar」。
例如,你可以有這樣的父POM:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.company.projectname</groupId>
<artifactId>projectname</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<name>projectname</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<superprop1>this property is available in all child projects</superprop1>
<superprop2>this property is available in all child projects</superprop2>
<superprop3>this property is available in all child projects</superprop3>
</properties>
</project>
而該項目的孩子看起來是這樣的:你在父POM聲明
<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">
<parent>
<artifactId>projectname</artifactId>
<groupId>com.company.projectname</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>child-project</artifactId>
<packaging>jar</packaging>
<name>child-project</name>
<description>
My child project
</description>
</project>
一切現在可在兒童絨球。在這個例子中,子項目將自動具有JUnit依賴項。這樣做也將確保環境被自動計算出來,相比之下,如果每個開發人員都不得不混淆他們的Maven安裝的超級POM。
你可能是對的,在這種情況下,超級pom就是要走的路。至於你把它放在哪裏,你需要創建一個本地的maven倉庫,並讓開發者訪問它。以下是一些有用的(而且免費)節目:
一旦您將存儲庫運行起來,您需要讓每位開發人員修改其settings.xml以引用您已設置的新存儲庫服務器。你創建的超級pom將被部署在倉庫中,所以一旦它們被配置使用它,maven就會自動將超級pom拉下來。
下面是一個artifactory的生成settings.xml文件的一個例子:
<?xml version="1.0" encoding="UTF-8"?> <settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <profiles> <profile> <repositories> <repository> <snapshots> <enabled>false</enabled> </snapshots> <id>central</id> <name>all</name> <url>https://server.mycompany.com/artifactory/all</url> </repository> <repository> <snapshots /> <id>snapshots</id> <name>all</name> <url>https://server.mycompany.com/artifactory/all</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <snapshots> <enabled>false</enabled> </snapshots> <id>central</id> <name>all</name> <url>https://server.mycompany.com/artifactory/all</url> </pluginRepository> <pluginRepository> <snapshots /> <id>snapshots</id> <name>all</name> <url>https://server.mycompany.com/artifactory/all</url> </pluginRepository> </pluginRepositories> <id>artifactory</id> </profile> </profiles> <activeProfiles> <activeProfile>artifactory</activeProfile> </activeProfiles> </settings>