2016-03-01 110 views
0

我在Github上使用一個公共maven倉庫來部署我的開源java項目的新版本。該項目可以在兩個不同的版本中構建,這些版本由pom.xml中的配置文件配置定義。當我部署我的工件時,默認構建將上傳到存儲庫。 根據具有相同Maven版本號的不同配置文件,是否可以部署不同的Maven版本?或者是否有一個概念或最佳實踐,說明如何根據所選配置文件使用不同的Maven工件版本號?如何根據配置文件部署Maven工件?

+0

「取決於所選配置文件的不同版本的Maven工件?」。這沒有意義。這違背了版本的概念。這聽起來像是你想用分類器部署多個工件。使用相同的版本。 – Tunaki

回答

1

不是100%確定你在問什麼,但是將分類器與你的工件關聯起來可能就是你要找的東西。舉例來說,如果你需要一個「刺」,並以不同的配置「舞臺」的神器,你會做這樣的事情:

<profiles> 
    <profile> 
    <id>stage</id> 
    <build> 
     <plugins> 
     . 
     . 
     <plugin> 
      <artifactId>maven-jar-plugin</artifactId> 
      <executions> 
      <execution> 
       <phase>package</phase> 
       <goals> 
       <goal>jar</goal> 
       </goals> 
       <configuration> 
       <classifier>stage</classifier> 
       </configuration> 
      </execution> 
      </executions> 
     </plugin> 
     </plugins> 
    </build> 
    </profile> 

運行你的「舞臺」曲線會給你一個「 - 工段的」神器。雖然我認爲通常有更好的方法可以做到這一點,但使用profiles到build for different environments的情況並不罕見。這是你想要做的嗎?

+0

是的,這是我在找什麼。我使用休息服務構建War-Templates。根據目標平臺(Glassfish,Wildfly),我需要配置不同的JAX-RS impl(球衣,RestEasy)。這就是爲什麼我想在一個版本 – Ralph

+0

Gotcha中提供不同的工件。因此,如果您正在構建.wars,那麼爲什麼不將您的應用程序源碼打包爲.jar,併爲每個目標平臺使用各自的描述符/資源來使用不同的模塊?這將會是一種更爲實用的方法(每個模塊有1個工件),並且在單個模塊中不會有龐大的pom.xml。 – JoshC13

+0

但JAX-RS配置的不同之處在於web.xml文件本身。我認爲沒有其他辦法可以爲每個平臺建立不同的戰爭模塊? – Ralph