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 پاسخ 609 بازدید
0 امتیاز
1 پاسخ 469 بازدید
0 امتیاز
1 پاسخ 1.5هزار بازدید
+1 امتیاز
1 پاسخ 473 بازدید
0 امتیاز
1 پاسخ 382 بازدید
0 امتیاز
1 پاسخ 510 بازدید
...