2017-11-24 2 views
0

나는 spring-boot를 사용하는 프로젝트에서 일하고있다. 나 자신의 부모 .pom 파일을 가지고 있으므로 스프링 부트 부모 pom을 사용할 수 없습니다. 프로젝트를 패키징 할 때, 메인 클래스는 MANIFEST.MF에 포함되지 않습니다. 플러그인 구성에서 지정합니다. 그래서 항아리를 작동 시키려고 할 때 자바는 주류를 찾을 수 없다고 말합니다.spring boot main class, 지정 방법

no main manifest attribute, in processor-interface-1.0.0.jar 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 

<modelVersion>4.0.0</modelVersion> 
<groupId>tld.domain.system</groupId> 
<artifactId>processor-interface</artifactId> 
<packaging>jar</packaging> 
<version>1.0.0</version> 

<parent> 
    <groupId>tld.domain.maven</groupId> 
    <artifactId>super-pom</artifactId> 
    <version>[0.1,1.0)</version> 
</parent> 

<properties> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
    <log4j.version>2.9.1</log4j.version> 
</properties> 

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-dependencies</artifactId> 
      <version>1.5.6.RELEASE</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-core</artifactId> 
      <version>${log4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-api</artifactId> 
      <version>${log4j.version}</version> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.oracle.jdbc</groupId> 
     <artifactId>ojdbc7</artifactId> 
     <version>12.1.0.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
     <version>3.7</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
      <version>1.5.6.RELEASE</version> 
      <configuration> 
       <mainClass>tld.domain.system.boot.ProcessorInterface</mainClass> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

나는 .jar 파일의 MANIFEST.MF에 드릴하고 더 메인 클래스가 실제로 존재하지 : 라인. pom에 MANIFEST.MF에 포함되도록 메인 클래스를 어떻게 지정합니까?

답변

1

나는 비슷한 설정하고있는 유일한 차이점은 내 spring-boot-maven-plugin 실행이 repackage 상에 연결되어 있다는 것입니다이 :이 일을 왜 모르겠어요 및

  <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <executions> 
        <execution> 
         <goals> 
          <goal>repackage</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration>my main class</mainClass> 
       </configuration> 
      </plugin> 
+0

그것을 다른 문서에없는 이유 나는 그것을 보았다. 그러나 그것은 작동하는 것처럼 보인다, 고마워. –

+0

실행 단계를 지정하지 않으면 플러그인을 실행하지 않습니다. 다음은 Spring docs와 동일한 설정입니다. https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html – tsolakp