0

는 내가 POM 파일의이 부분과 빌드 번호 생성 :Maven : webstart, buildnumber 및 finalName이 충돌합니까?

<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>buildnumber-maven-plugin</artifactId> 
     <version>1.2</version> 
     <configuration> 
      <buildNumberPropertyName>project.build.number</buildNumberPropertyName> 
      <timestampPropertyName>project.build.time</timestampPropertyName> 
      <format>{0,date,yyyyMMddHHmmss}</format> 
      <items> 
       <item>timestamp</item> 
      </items> 
      <doCheck>false</doCheck> 
      <doUpdate>false</doUpdate> 
     </configuration> 
     <executions> 
      <execution> 
       <phase>validate</phase> 
       <goals> 
        <goal>create</goal> 
       </goals> 
      </execution> 
     </executions> 
    </plugin> 

난에 finalName를 설정 그 후 다음 :

<finalName> 
     ${project.artifactId}-${project.version}.${project.build.number} 
    </finalName> 

나는 또한 Webstart를-받는다는 - 플러그인을 사용하고 있습니다 webstart-app로 프로젝트를 생성합니다. webstart-plugin은 zip 파일을 생성합니다. 그리고 모두가 하나 개의 작은 세부 사항을 제외하고 잘 작동 :

[buildnumber:create] 
Storing buildNumber: 20130312133207 at timestamp: 1363091527664 
Building jar: D:\projects\myProject\target\myProject-1.0.20130312133207.jar 
Building jar: D:\projects\myProject\target\myProject-1.0.20130312133207-sources.jar 
Building jar: D:\projects\myProject\target\myProject-1.0.20130312133207-javadoc.jar 
Building zip: D:\projects\myProject\target\myProject-1.0.${project.build.number}.zip 

왜 $ {project.build.number}이 아닌 압축 파일로 대체 :이 출력이 빌드에

가? 그것은 zip이지 항아리가 아니기 때문에 그렇습니까? 왜 버전이 바뀌 었습니까? POM에서 zip 파일의 buildNumber를 바꾸라고 어떻게 말할 수 있습니까?

$ project.build.number 대신 기본 $ buildNumber를 사용하여 이미 시도했지만 작동하지 않습니다.

편집 : 이미 두 플러그인에 대해 다른 단계를 시도했지만 지금까지 조합이 작동하지 않았습니다.

Edit2가 : 경우에 그것은 Webstart를-플러그인 부분이 여기처럼 보이는 코드를 얼마나 당신을 위해 재미있다 : Looking for Webstart Maven Plugin sample application

+0

아무도 도와 드릴 수 있습니까? 내가 한 짓이나 뭐가 뭔지에 관한 질문조차하지 않았 니? –

+0

먼저 buildNumber, timestamp 대신 project.build (project.build 등을 방해 할 수 있음)와 같은 속성 이름의 기본값을 사용하는 것이 좋습니다. 또한 finalName이 outputDirectory 폴더의 파일에만 적용되고 배포 될 아티팩트가 아닌 이유로 인해 이름을 변경해야하는 이유를 알고 싶습니다. 그 외에도 어셈블리 설명자가 어떻게 생겼는지 알고 싶습니다. – khmarbaise

답변

0

: 내가 거기 예제의 코드를 사용

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>webstart-maven-plugin</artifactId> 
      <version>1.0-beta-3</version> 
      <executions> 
       <execution> 
        <phase>install</phase> 
        <goals> 
         <goal>jnlp</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 

       <!-- JNLP generation --> 
       <jnlp> 
        <!-- default values --> 
        <inputTemplateResourcePath>${project.basedir}</inputTemplateResourcePath> 
        <inputTemplate>src/main/jnlp/app.vm</inputTemplate> <!-- relative to inputTemplateResourcePath --> 
        <outputFile>app.jnlp</outputFile> <!-- defaults to launch.jnlp --> 

        <!-- used to automatically identify the jar containing the main class. --> 
        <!-- this is perhaps going to change --> 
        <mainClass>com.mycompany.myproject.App</mainClass> 
       </jnlp> 
       <sign> 
        <keystore>${basedir}/keystore</keystore> 
        <keypass>password</keypass> <!-- we need to override passwords easily from the command line. ${keypass} --> 
        <storepass>password</storepass> <!-- ${storepass} --> 
        <!--storetype>fillme</storetype--> 
        <alias>MyProjectWebstart</alias> 

        <!--validity>fillme</validity--> 

        <!-- only required for generating the keystore --> 
        <dnameCn>MyProjectWebstart</dnameCn> 
        <dnameOu>MyName</dnameOu> 
        <dnameO>MyCompany</dnameO> 
        <dnameL>MyTown</dnameL> 
        <dnameSt>MyState</dnameSt> 
        <dnameC>MyCountry</dnameC> 

        <verify>true</verify> <!-- verify that the signing operation succeeded --> 

        <!-- KEYSTORE MANAGEMENT --> 
        <keystoreConfig> 
         <delete>true</delete> <!-- delete the keystore --> 
         <gen>true</gen>  <!-- optional shortcut to generate the store. --> 
        </keystoreConfig> 
       </sign> 
      </configuration> 
     </plugin> 

buildNumberPropertyName 매개 변수를 project.build.ANYTHING으로 설정하지 마십시오. $ {project.XXX}로 시작하는 표현식은 MavenProject 객체를 기반으로하므로 $ {project.build.date}에서 getter getBuild()에 getter getDate()가 올바르지 않은 객체를 반환합니다.

buildNumberPropertyName 및 timestampPropertyName 매개 변수의 이름을 다르게 지정하십시오. 예 : myBuildNumber 및 myTimestamp에 따라 나머지 POM을 변경하십시오.