문제

나는 그것을 얻지 못한다. MAVEN EXEC Plugin을 사용하여 Project의 일부 클래스를 올 Y 른 ClassPath, -d Defines 및 -javaagent로 실행할 수 있도록 내 pom.xml을 설정했습니다. 그래서 쉘에서 ./target/classes 등에 구축 된 클래스가 있습니다. 를 사용하여 main () 메소드를 실행할 수 있습니다.

mvn exec:java -Dexec:mainClass=classWithAMainMethod
.

지금까지 모두 좋은 것입니다.

이제는 내 프로젝트 (JAR Artifact)를 발송하고 싶습니다. 그리고 정확한 인수 등의 클래스를 실행하기 위해 pom.xml에 넣은 구성을 여전히 사용할 수 있기를 원합니다. 어떻게해야합니까? 그것? 를 유지하는 방법이 있습니까?

mvn -artifactJar=MyArtifact.jar exec:java -Dexec:mainClass=classWithAMainMethod
.

내가 가진 모든 것이 MyARTIFACT.jar (또는 MyARTifact.jar가있는 Maven 저장소가있는 Maven 저장소)입니까 ??

다음을 시도했습니다.

  • 종속성으로 항아리를 가져와 목표를 얻고 압축을 풉니 다. 나는 그것으로 아무 것도 할 수 없다 pom.xml이 아티팩트 항아리의 Meta-INF / Maven에서 끝나는 것처럼 보입니다. 그것을 사용하는 방법이 있습니까?

  • 더미 POM을 만들고 내 프로젝트를 단일 프로젝트에서 단일 종속성으로 실행하고자하는 곳에서는 이슈를 작성합니다. 그런 다음 EXEC : Java를 사용하여 주 클래스를 실행하지만 DoSEN은 내 프로젝트 POM에서 구성을 사용하지 않습니다.

    감사합니다.

도움이 되었습니까?

해결책 2

AppAssembler 플러그인은 저에게 매우 잘 작동했습니다.프로젝트의 POM에서 EXEC PLUGIN CONFIG를 빌드 섹션에서 다음과 같이 대체했습니다.

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>appassembler-maven-plugin</artifactId>
    <version>1.2.2</version>
    <configuration>
        <repositoryLayout>flat</repositoryLayout>
        <repositoryName>lib</repositoryName>
        <extraJvmArguments>
            -Djava.rmi.server.hostname=localhost
            -javaagent:${spring.javaagent.jar}
        </extraJvmArguments>
        <programs>
            <program>
                <name>foo1</name>
                <mainClass>net.foor.FooMain</mainClass>
            </program>
               ...
    </configuration>
</plugin>
.

Eclipse에서는 대상 / appassembler / bin 에서 결과 스크립트를 실행하는 외부 도구 실행기를 만들었습니다.

컴퓨터에서 배포하려는 (내 아티팩트 + 종속성이 설치 / 배포 된 내부 Maven 저장소에 액세스 할 수 있음)

  • wget 또는 mvn 의존성을 사용합니다. 을 얻으려면
  • POM을 추출하십시오. unzip -j artifact.jar * / pom.xml *
  • run mvn appassembler : 어셈블 - 디렉토리 embledirectory=.
  • artifact.jar를 ./lib 디렉토리 로 이동하십시오.
  • ./bin 에서 생성 된 쉘 스크립트에 대한 실행 권한 설정

다른 팁

onejar 와 같은 것을 사용하여 사용해 보셨습니까?

당신이 찾고있는 것을 좋아하는 것처럼 들립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top