올바른 폴더 경로로 pom.xml의 mainClass를 추가할 수 있습니다.
제가 만든 프로젝트로 작업항 파일을 받고 싶습니다.
빌드 부분은 다음과 같습니다.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.14</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>6.4.1</version>
</dependency>
</dependencies>
<configuration>
<consoleOutput>true</consoleOutput>
<configLocation>${basedir}/src/test/resources/checkstyle_swt1.xml</configLocation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptor>src/assembly/src.xml</descriptor>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addClasspath>true</addClasspath>
<mainClass>org.jis.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
그래서 지금 제 문제는 메인 클래스를 제 pom.xml로, 나중에 jar 파일로 제대로 구현하는 방법을 모른다는 것입니다.폴더 구조는 src/main/java/org/jis/main.java이지만 다음 행을 추가하면 됩니다.
<mainClass>src.main.java.org.jis.Main</mainClass>
동작되지 않습니다.
의 주 , 를 .src/main/java
자바 파일에 있는 패키지 선언문을 보세요.를 들면,면,package org.jis;
합니다.합니다. 말로 하자면면일 입니다.org.jis.Main
.
maven-compiler-plugin 대신 maven-jar-plugin을 구성해야 합니다.병마개는 매니페스트를 포장하고 만드는 역할을 하는 것입니다.MF.
출처: http://maven.apache.org/shared/maven-archiver/examples/classpath.html
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<!-- Here come other details
...
-->
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
</configuration>
<!-- Here come other details
...
-->
</plugin>
</plugins>
</build>
스프링부팅 어플리케이션이라면 아래와 같이 언급할 수 있습니다.
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.test.MainClass</mainClass>
</configuration>
</plugin>
</plugins>
</build>
기본적으로 메이븐은 프로젝트를 구축하기 위해 수행되는 각 작업에 대한 메이븐 플러그인 모음을 가진 프레임워크입니다.
각 빌드 단계는 프로젝트 설명 POM(Project Object Model)을 사용하여 해당 메이븐 플러그인에 의해 수행됩니다.
그래서 maven-compiler plugin은 단지 프로젝트를 컴파일할 책임이 있고 매니페스트 파일은 만들지 않습니다.
maven-jar-plugin는 프로젝트의 매니페스트 파일을 만드는 일을 맡고 있습니다.
일을 할 수 있는 믿을 수 없을 정도로 간단한 예를 얻으려고 했던 것만큼 좌절했던 사람들을 위해 이것을 여기에 남겨두는 것입니다.
문제는 메이븐 병 아카이브에 잘못된 정보가 캐싱되어 있기 때문에 적절한 메인 클래스를 제공하는 경우(또는 제 경우에는 메이븐 버전 및 설정을 실제로 사용할 필요가 없습니다)입니다.
만약 당신이 IntelliJ를 사용하고 있다면 "target" 디렉토리를 날려버리도록 시도해보세요.예를 들어 "target" 디렉토리는 기본값인 "target" 디렉토리에 병을 배치합니다.
주 클래스의 정규화된 이름을 사용해야 합니다.
<mainClass>org.jis.Main</mainClass>
질문 후 시간이 좀 지난 것 같지만, 제가 도달한 해결책을 앞으로 읽어보도록 하겠습니다.
Intel JIDE에서 메이븐 프로젝트를 사용하고 있습니다. 운영 체제에서 복사한 전체 경로를 사용하더라도 다음과 같습니다.C:\Users\Rogerio\Desktop\Script\src\main\java\Controller\MainClass.java, .java 유무 또는 com.src 시도...approach main class를 찾을 수 없습니다. 내 응용프로그램을 위한 jar 파일을 만드는 중입니다.
해결책은 다음과 같이 maven-jar 플러그인의 mainClass 태그 안에 CDATA 태그를 넣는 것이었습니다.
내 파일 구조:
[IntelliJ의 디렉토리 이미지m 구조][1][1]: https://i.stack.imgur.com/LHCWc.jpg
pom.xml의 maven-jar 플러그인 안에서:
`<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass><![CDATA[Controller.MainClass]]></mainClass>
</manifest>
</archive>
</configuration>
`
Spring Boot Application을 사용하는 경우.pom.xml에서 아래를 추가합니다.
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
MANEFASE의 Main-Class 항목이 추가됩니다.MF파일.
언급URL : https://stackoverflow.com/questions/29920434/maven-adding-mainclass-in-pom-xml-with-the-right-folder-path
'programing' 카테고리의 다른 글
x64 플랫폼에서 실행할 단위 테스트를 받으려면 어떻게 해야 합니까? (0) | 2023.10.06 |
---|---|
ORA-06532: 구독이 제한을 벗어남 (0) | 2023.10.06 |
"전제조건"과 "주장"의 차이점은? (0) | 2023.10.06 |
Kubernetes 비밀 해독 (0) | 2023.10.06 |
GitLab에서 사용자 지정 Composer 패키지 설치 (0) | 2023.10.06 |