maven 學習筆記(六)-創建簡單的多模塊maven項目)

   例子包括的子模塊有:一個java工程,一個android 庫工程(打包爲aar),一個Android 項目

    一、首先創建一個簡單的空maven工程demo,創建流程如下圖:

   1、


2.


3.




    二、創建一個java工程utils,創建流程如下圖:

   1、


2.


3.


3.

 


4.




5.



6.pom.xml文件內容如下:

<?xml version="1.0" encoding="UTF-8"?><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/maven-v4_0_0.xsd">


 

   <modelVersion>4.0.0</modelVersion>

	 <parent>
    <groupId>com.special.demo</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <groupId>com.special.demo.utils</groupId>
  <artifactId>utils</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>utils</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
    <dependencies>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>lang</artifactId>
            <version>2.4</version>
        </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
<build>
        <finalName>${project.artifactId}-${project.version}</finalName>
        <sourceDirectory>src/main/java</sourceDirectory>
        <resources>
            <resource>
                <directory>${basedir}/src/main/java</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <executions>
                    <execution>
                        <phase>compile</phase>
                    </execution>
                </executions>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <!-- <finalName>${project.build.name}</finalName> -->
                    <attach>true</attach>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- clean插件 -->
            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <filesets>
                        <fileset>
                            <directory>${project.build.directory}</directory>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.3.1</version>
                <configuration>
                    <archive>
                        <!-- 不把pom.xml打入jar中 -->
                        <addMavenDescriptor>false</addMavenDescriptor>
                        <manifestFile>
                            ${basedir}/src/main/META-INF/MANIFEST.MF
                        </manifestFile>
                        <manifest>
                            <!-- <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> -->
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

        </plugins>
    </build>


    <profiles>

        <!-- 打包混淆 -->
        <profile>
            <id>proguard</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>

            <properties>
                <project.build.release>false</project.build.release>
                <project.build.obfuscate>true</project.build.obfuscate>
            </properties>
            <build>
                <!-- <filters> <filter>src/main/resources/env-debug.properties</filter> 
                    </filters> -->

                <plugins>
                    <plugin>
                        <groupId>com.pyx4me</groupId>
                        <artifactId>proguard-maven-plugin</artifactId>
                        <version>2.0.4-SONATYPE</version>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>proguard</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <obfuscate>${project.build.obfuscate}</obfuscate>
                            <proguardInclude>${basedir}/proguard-project.txt</proguardInclude>
                            <release>${project.build.release}</release>

                            <libs>
                                <!-- <lib>libs/commons-lang-2.4.jar</lib> <lib>libs/commons-lang-2.4.jar</lib> -->
                            </libs>

                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>


        <profile>
            <!-- 上線發佈(不混淆jar) -->
            <id>release</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <project.build.obfuscate>false</project.build.obfuscate>
                <project.build.release>true</project.build.release>
            </properties>
            <build>
                <!-- <filters> <filter>src/main/resources/env-release.properties</filter> 
                    </filters> -->
                <plugins>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>



    三、創建一個android工程textviewsdk,創建流程如下圖:

   1、


2.



3.



4.


5.pom.xml文件內容如下:

<?xml version="1.0" encoding="UTF-8"?><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/maven-v4_0_0.xsd">


 

   <modelVersion>4.0.0</modelVersion>

<parent>
        <artifactId>demo</artifactId>
        <groupId>com.special.demo</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <groupId>com.special.demo.view</groupId>
    <artifactId>textviewsdk</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>aar</packaging>
    <name>textviewsdk</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <platform.version>4.1.1.4</platform.version>
        <android.plugin.version>4.0.0-rc.2</android.plugin.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.google.android</groupId>
            <artifactId>android</artifactId>
            <version>${platform.version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
        <build>
        <finalName>${project.artifactId}</finalName>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                    <artifactId>android-maven-plugin</artifactId>
                    <version>${android.plugin.version}</version>
                    <extensions>true</extensions>
                                        <executions>
                        <!-- <execution> <id>run</id> <goals> <goal>deploy</goal> <goal>run</goal> 
                            </goals> <phase>install</phase> </execution> -->
                        <execution>
                            <id>alignApk</id>
                            <phase>install</phase>
                            <goals>
                                <goal>zipalign</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                             <assetsDirectory>${project.basedir}/assets</assetsDirectory>
                        <resourceDirectory>${project.basedir}/res</resourceDirectory>
                        <!-- 
                        <androidManifestFile>${project.build.directory}/filtered-manifest/AndroidManifest.xml</androidManifestFile>
                         -->
                         <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
                        <nativeLibrariesDirectory>${project.basedir}/libs</nativeLibrariesDirectory>
                        <!-- <proguardConfig>proguard.cfg</proguardConfig> -->
                        <proguardConfig>proguard-project.txt</proguardConfig>
                        <proguardSkip>${project.build.proguardSkip}</proguardSkip>
                        <manifestDebuggable>${manifest.debuggable}</manifestDebuggable>

                        <release>${project.build.release}</release>
                        <run>
                            <debug>${project.build.debug}</debug>
                        </run>
                        <runDebug>${project.build.runDebug}</runDebug>
                        <sign>
                            <debug>${project.build.sign.debug}</debug>
                        </sign>
                        <undeployBeforeDeploy>false</undeployBeforeDeploy>
                        <mergeManifests>true</mergeManifests>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                <artifactId>android-maven-plugin</artifactId>
                <configuration>
                    <sdk>
                        <platform>16</platform>
                    </sdk>
                                    </configuration>
            </plugin>
        </plugins>
    </build>
</project>




  四、按前面的流程創建一個android工程apptest,創建後整個項目結構圖如下:



      五、demo地址下載鏈接地址如下:

       https://github.com/spring5555/mvn-android-simple-demo5



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章