0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

من یک ماژول maven دارم که packaging آن war می باشد. یک ماژول maven دیگر که packaging آن نیز war است به کلاس های ماژول اول وابستگی دارد. آیا راهی وجود دارد که بین این دو ماژول maven وابستگی ایجاد کرد؟

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)
 
بهترین پاسخ

بهترین راه حل برای این مشکل تعریف یک ماژول جدید maven است که packaging آن jar باشد (و حاوی کلاس های مشترک باشد) و دو ماژول war به آن dependency داشته باشند.

اما اگر نمی خواهید ماژول maven سومی ایجاد کنید ابتدا dependecy ماژول اول را در pom.xml ماژول دوم تعریف کنید:

        <dependency>
            <groupId>com.javabyab</groupId>
            <artifactId>maven-web1</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

سپس در pom.xml ماژول اول و در قسمت build با استفاده از پلاگین های maven-jar-plugin و maven-install-plugin به ماژول اول بگویید علاوه بر ساختن فایل war فایل jar ماژول اول را نیز بسازد:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <id>make-a-jar</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>       
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <phase>install</phase>
                        <goals>
                            <goal>install-file</goal>
                        </goals>
                        <configuration>
                            <packaging>jar</packaging>
                            <artifactId>${project.artifactId}</artifactId>
                            <groupId>${project.groupId}</groupId>
                            <version>${project.version}</version>
                            <file>
                                ${project.build.directory}/${project.artifactId}-${project.version}.jar
                            </file>
                        </configuration>
                    </execution>
                </executions>
            </plugin> 

پ.ن. ولی راه حل ایجاد ماژول سوم بهتر و اصولی تر است.

سوالات مشابه

+1 امتیاز
1 پاسخ 475 بازدید
0 امتیاز
1 پاسخ 349 بازدید
0 امتیاز
1 پاسخ 1.2هزار بازدید
+1 امتیاز
1 پاسخ 337 بازدید
0 امتیاز
1 پاسخ 270 بازدید
0 امتیاز
1 پاسخ 332 بازدید
...