मैं एक multimodule परियोजना है, वसंत बूट के साथ निर्माण 1.1.7स्प्रिंग बूट MVC मल्टी मॉड्यूल Executeable जार
संरचना
+ parent
+ import
+ web
+ backend
मेरे जनक मॉड्यूल microservices की तरह शामिल होंगे है, जो मैं चाहता मेरे माता-पिता (निर्भरता जो सभी उपयोग करते हैं) से प्रबंधित करने के लिए और इसी तरह से। आयात/बैकएंड में मेरा बैच व्यवसाय तर्क है, वेब में एक एमवीसी एप्लीकेशन है, जहां से मैं बैच नौकरी शुरू कर सकता हूं।
ग्रहण में सबकुछ मेरे लिए ठीक काम करता है, मैं एप्लिकेशन.जावा फ़ाइल और एप्लिकेशन कार्यों से आवेदन शुरू कर सकता हूं।
अब मैं निष्पादन योग्य जार फ़ाइल निष्पादित करके उस एप्लिकेशन को निष्पादित करना चाहता था, लेकिन मुझे कंसोल से शुरू करने का प्रयास करते समय निम्न त्रुटि संदेश मिलता है।
java -jar application.jar
Kein Hauptmanifestattribut in application.jar
जार बहुत छोटा केवल 5kb है, मैं जार पैकेज में 3 पार्टी निर्भरता के किसी भी जार नहीं मिला।
वेब मॉड्यूल की पोम इस प्रकार की तरह है:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>at.company.bbsng</groupId>
<artifactId>bbsng-import</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<artifactId>bbsng-import-web</artifactId>
<name>bbsng-import-web</name>
<packaging>jar</packaging>
<properties>
<start-class>at.company.bbsng.dataimport.Application</start-class>
</properties>
<dependencies>
<!-- APPLICATION -->
<dependency>
<groupId>at.company.bbsng</groupId>
<artifactId>bbsng-import-backend</artifactId>
<version>${parent.version}</version>
</dependency>
<!-- SPRING ... -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-logging</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
आयात मॉड्यूल का पोम है:
<project>
<parent>
<groupId>at.company.bbsng</groupId>
<artifactId>bbsng</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<artifactId>bbsng-import</artifactId>
<name>bbsng-import</name>
<packaging>pom</packaging>
<modules>
<module>backend</module>
<module>web</module>
</modules>
</project>
और माता पिता के पोम है:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>at.company.bbsng</groupId>
<artifactId>bbsng</artifactId>
<version>0.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>bbsng</name>
<description>BBS Next Generation Application Prototype</description>
<properties>
<java-version>1.8</java-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<org.springframework.boot-version>1.1.7.RELEASE</org.springframework.boot-version>
</properties>
<modules>
<!-- <module>backend</module> -->
<!-- <module>business</module> -->
<module>import</module>
<!-- <module>infra</module> -->
<!-- <module>log</module> -->
<!-- <module>rest</module> -->
</modules>
<dependencyManagement>
<dependencies>
<!-- SPRING-BOOT ... -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<type>pom</type>
<version>${org.springframework.boot-version}</version>
<scope>import</scope>
</dependency>
<!-- JAVAX ... -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<!-- COMMONS ... -->
...
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.5</version>
<configuration>
<tagBase>
svn://svn.int.company.at/stmlf-repository/prototype/bbsng/tags
</tagBase>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>external</id>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*custom*</exclude>
<exclude>**/custom/*</exclude>
</excludes>
</resource>
</resources>
</build>
</profile>
</profiles>
</project>
आप की जरूरत है अधिक जानकारी कृपया पूछें। क्या आपसे मुझे मदद मिल सकती है।
बहुत बहुत धन्यवाद।
समस्या यह है कि आपकी रनने योग्य एप्लिकेशन क्लास मुख्य परियोजना में होनी चाहिए जो उप/आयातित परियोजना में नहीं है। यदि आप जार का निर्माण कर रहे हैं तो मैनिफेस्ट के लिए मुख्य श्रेणी को स्पष्ट रूप से परिभाषित करते हैं तो यह काम कर सकता है। –
आपके उत्तर के लिए धन्यवाद, यह सही था, कि प्रॉपर्टी स्टार्ट-क्लास सही ढंग से सेट नहीं की गई थी, मैंने इसे ठीक किया। लेकिन यह मेरी समस्या से मेरी मदद नहीं की। अजीब समस्याओं में से एक यह है कि मैवेन में कॉन्फ़िगर की गई कोई निर्भरता मेरी जार-फाइल में नहीं है। वे सब गायब हैं, मेरे बैकएंड मॉड्यूल को शामिल किया गया है जो मैंने अपने वेब मॉड्यूल से उठाया है। इसके परिणामस्वरूप मेरे जार का आकार 5 केबी है। –
'bbsng-import-backend' के लिए पोम क्या है? –