2012-09-14 92 views
1

我有一個Maven項目,它生成一個WAR文件並嘗試從代碼庫中維護的.properties文件中的屬性中獲取工件版本。我也嘗試使用自定義屬性來形成WAR文件的最終名稱。使用自定義屬性構建的版本安裝和部署maven工件

段:

<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/xsd/maven-4.0.0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 

    ... 

    <groupId>com.xyz.webapps</groupId> 
    <artifactId>webapps</artifactId> 
    <version>${info.version}-${application.env}</version> 
    <packaging>war</packaging> 
    <!-- Filling in the artifact version with properties read below --> 

    ... 

    <!-- Filling in the WAR name --> 
    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <maven.war.final.name>${pom.artifactId}-${pom.currentVersion}.war</maven.war.final.name> 
    <maven.test.skip>true</maven.test.skip> 
    </properties> 

... 

<build> 
    <plugins> 

    ... 

    <!-- I read those properties files here --> 
    <plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>properties-maven-plugin</artifactId> 
    <version>1.0-alpha-2</version> 
    <executions> 
     <execution> 
     <phase>validate</phase> 
     <goals> 
      <goal>read-project-properties</goal> 
     </goals> 
     <configuration> 
      <files> 
      <file>${project.basedir}/webapps-main/src/main/resources/MessageResources.properties</file> 
      <file>${project.basedir}/build.properties</file> 
      </files> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

    ... 

</plugins> 

... 
</project> 

當我做了 「MVN清潔包」 WAR文件的名稱才能正確生成:

[INFO] Assembling webapp[webapps] in [/home/jubuntu/workspace/ui/new/webapps/target/webapps-2.8-qa] 
[INFO] Processing war project 
[INFO] Copying webapp resources[/home/jubuntu/workspace/ui/new/webapps/webapps-main/src/main/webapp] 
[INFO] Webapp assembled in [4690 msecs] 
[INFO] Building war: /home/jubuntu/workspace/ui/new/webapps/target/webapps-2.8-qa.war 

但是,當我做了一個 「MVN乾淨安裝」(或「mvn clean deploy」),由於某些原因,屬性不會擴展(程序包階段仍會生成帶有正確名稱的WAR):

[INFO] Building war: /home/jubuntu/workspace/ui/new/webapps/target/webapps-2.8-qa.war 
[INFO] [install:install {execution: default-install}] 
[INFO] Installing /home/jubuntu/workspace/ui/new/webapps/target/webapps-2.8-qa.war to /home/jubuntu/.m2/repository/com/xyz/webapps/webapps/${info.version}-${application.env}/webapps-${info.version}-${application.env}.war 

我在這裏有什麼不對嗎?我如何使這項工作安裝和部署我的工件?我爲我的版本使用maven版本2.2.1。謝謝。

回答

1

你不能這樣做。 Maven不支持它。這是根本。

+0

感謝您的快速回復!我不知道這是Maven的一個基本功能,它不能被覆蓋。看起來快照將不得不這樣做。 –

相關問題