2012-07-08 3 views
3

어셈블리를 만들고 서명하고 싶습니다. 내 문제는 jarsigner가 어셈블리가 아니라 독립 실행 형 jar 파일에만 서명한다는 것입니다. 문제가 무엇인지 말해 줄 수 있습니까? 메이븐 (Maven)은 앤트를 수년간 사용해 본 후에 나에게 '마술처럼'보인다. 나는 플러그인이 협력하고 서로 정보를 전달하는 방법을 볼 수 없다.maven-assembly plugin으로 만든 jar 파일에 서명하십시오.

mvn install을 실행 한 후 example-1.0.0-SNAPSHOT.jar이라는 두 개의 jar 파일이 있는데 서명 된 파일이고 example-1.0.0-jar-with-dependencies.jar이라는 파일이 서명되지 않았습니다.이 파일에는 서명되지 않았습니다. 솔로 하나만 필요는 없지만 어셈블리는 필요합니다. 여기

내 pom.xml 파일입니다 :

<build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jarsigner-plugin</artifactId> 
       <version>1.2</version> 
       <executions> 
        <execution> 
         <id>sign</id> 
         <goals> 
          <goal>sign</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <keystore>${project.basedir}\keystore\mykeystore</keystore> 
        <alias>myalias</alias> 
        <storepass>...</storepass> 
        <keypass>...</keypass> 
       </configuration> 
      </plugin> 

      <plugin> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <executions> 
        <execution> 
         <id>make-my-assembly</id> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <archive> 
         <manifest> 
          <mainClass>com.example.FooBar</mainClass> 
         </manifest> 
        </archive> 
        <appendAssemblyId>true</appendAssemblyId> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

답변

4

대신 패키지 단계의 준비 패키지를 상으로 받는다는 - 조립 플러그인을 넣어 시도해야합니다 :

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>make-my-assembly</id> 
      <phase>prepare-package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
     </execution> 
    </executions> 
    ... 
</plugin> 
+1

이 변경 작업을 수행 한 후 오류가 발생했습니다. '포함 된 오류 : 소스는 디렉토리가 될 것입니다. " – jabal

+0

완성품을 pastebin이나 비슷한 것으로 게시 할 수 있습니까? – khmarbaise

+0

@khmarbaise : +1 나를 위해 정렬했습니다. 정말 고마워요. –

3
<configuration> 
     <archiveDirectory>${project.build.directory}</archiveDirectory> 
     <includes> 
      <include>*.jar</include> 
     </includes> 
     <keystore>${project.basedir}/keystore/mykeystore</keystore> 
     <alias>keyalias</alias> 
     <storepass>storepass</storepass> 
     <keypass>keypass</keypass> 
    </configuration> 

이것을 참조하십시오 http://maven.apache.org/plugins/maven-jarsigner-plugin/sign-mojo.html

관련 문제