2017-12-22 17 views
1

작은 도입

안에 jar 파일과 zip 파일에서 Maven 프로젝트를 패키지로 어떻게 받는다는 꽤 새로운 그리고 난 문제를 직면하고 있습니다. 내 프로젝트의 구조는 다음과 같습니다

|--root |--bin |-- some bash scripts |--config |-- some .properties files |--j2ee-apps |-- some web related files |--META-INF |-- MANIFEST.MF |--src |-- main |-- java |-- test |-- java

목표

나는 다음과 같은 구조 .zip 파일 가야 mvn package를 실행 한 후 :

|--zip |--bin |-- some bash scripts |--config |-- config.jar <-- jar with all .properties files inside |--j2ee-apps |-- some web related files |--META-INF |-- MANIFEST.MF |--lib |-- classes.jar <-- jar with all .class files inside (from src folder)

을 나는 maven-assembly-plugin을 사용하려고했지만, 저에게 맞는 예제를 찾지 못했습니다. 어떤 식 으로든 그냥 지퍼가 아니며, 프로젝트의 jar 파일 내부에 META-INF가 넣어 경우

+0

당신은 당신이 OSGi 번들을 만들 수 있도록 명시 적으로 정의 MANIFEST.MF 있나요? 또는 MANIFEST.MF를 정의한 목적은 무엇입니까? – khmarbaise

+0

명시 적으로 정의 된 MANIFEST.MF for ATG 응용 프로그램이 필요합니다. 나는 atg 플랫폼으로 일하고 있기 때문에. –

+0

MANIFEST.MF 파일의 기본 위치는'src/main/resources/META-INF/MANIFEST.MF'입니다. 또한'src/main/resources' ... bash 스크립트를'src/main/scripts '... – khmarbaise

답변

3

귀하의 assembly.xml는 외모는

<assembly> 
    <id>zip</id> 
    <formats> 
     <format>zip</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <dependencySets> 
    <dependencySet> 
     <unpack>false</unpack> 
     <scope>runtime</scope> 
     <outputDirectory>lib</outputDirectory> 
     <useProjectArtifact>false</useProjectArtifact> 
    </dependencySet> 
    </dependencySets> 
    <fileSets> 
    <fileSet> 
    <directory>${project.build.directory}</directory> 
    <outputDirectory>/lib</outputDirectory> 
    <includes> 
     <include>*.jar</include> 
    </includes> 
    </fileSet> 
    <fileSet> 
     <directory>${project.basedir}/bin</directory> 
     <outputDirectory>/bin</outputDirectory> 
     <filtered>true</filtered> 
     <includes> 
     <include>**/*.*</include> 
     </includes> 
    </fileSet> 
    <!-- add fileSet entries for other folders under root --> 
    </fileSets> 
</assembly> 

처럼 잘 모르겠어요해야한다.

은 항아리 당신의 이름을 변경하려면 당신이 필요 받는다는 항아리 - 플러그인

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
    <finalName>new_jar_name</finalName>     
    </configuration> 
</plugin> 
+0

답변 해 주셔서 감사합니다. 나는 당신이 제공 한 assembly.xml로 프로젝트를 패키징했습니다. 마지막 .zip 파일을 살펴보면 lib/groupId-version.jar이라는 것을 알게되었습니다. 이 jar 파일의 이름을 classes.jar로 지정하고 싶습니다. 이 일을 어떻게하는지 아십니까? –

+0

내 대답 업데이트 – Ivan

+0

maven-jar-plugin을 추가 한 후 내부 jar 파일의 이름이 바뀌지 않았습니다. –