<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>org.jeecgframework.boot</groupId>
	<artifactId>codegenerate</artifactId>
	<version>1.0.3-SNAPSHOT</version>
	<description>Jeecg-Boot 代码生成器，松耦合无缝对接任意JAVA语言框架.</description>

	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
		</license>
	</licenses>
	<developers>
		<developer>
			<name>jeecg</name>
			<email>jeecgos@163.com</email>
		</developer>
	</developers>

	<distributionManagement>
		<repository>
			<id>jeecg</id>
			<name>jeecg Repository</name>
			<url>http://maven.jeecg.com:8090/nexus/content/repositories/jeecg</url>
		</repository>
		<snapshotRepository>
			<id>jeecg-snapshots</id>
			<name>jeecg Snapshot Repository</name>
			<url>http://maven.jeecg.com:8090/nexus/content/repositories/snapshots/</url>
		</snapshotRepository>
	</distributionManagement>

	<dependencies>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.6</version>
		</dependency>
		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.6</version>
		</dependency>
		<dependency>
			<groupId>org.freemarker</groupId>
			<artifactId>freemarker</artifactId>
			<version>2.3.28</version>
		</dependency>

		<!-- slf4j-api -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.25</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.2.3</version>
			<scope>provided</scope> <!-- provided意味着打包的时候可以不用打包进去，别的容器会提供 -->
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.16.22</version>
			<scope>provided</scope>
		</dependency>

		<!-- db 驱动 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.27</version>
			<scope>runtime</scope> <!-- 表示被依赖项目不会参与项目的编译，但项目的测试期和运行时期会参与 -->
		</dependency>
		<dependency>
			<groupId>org.postgresql</groupId>
			<artifactId>postgresql</artifactId>
			<version>9.3-1100-jdbc41</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>ojdbc</groupId>
			<artifactId>ojdbc</artifactId>
			<version>14</version>
			<type>pom</type>
			<scope>runtime</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<testFailureIgnore>true</testFailureIgnore>
				</configuration>
			</plugin>
			<!-- ProGuard混淆插件-->
            <plugin>
			    <groupId>com.github.wvengen</groupId>
			    <artifactId>proguard-maven-plugin</artifactId>
			    <executions>
			        <execution>
			            <!-- 打包的时候开始混淆-->
			            <phase>package</phase>
			            <goals><goal>proguard</goal></goals>
			        </execution>
			    </executions>
			    <configuration>
			        <proguardVersion>6.0.3</proguardVersion>
			        <!--指定混淆的jar,如springboot打出来的jar基于它混淆-->
			        <injar>${project.build.finalName}.jar</injar>
			        <!--输出的jar-->
			        <outjar>${project.build.finalName}-pg.jar</outjar>
			        <!-- 是否混淆-->
			        <obfuscate>true</obfuscate>
			        <options>
			            <option>-target 1.8</option> <!--指定java版本号-->
			            <option>-dontshrink</option> <!--默认开启，不做收缩（删除注释、未被引用代码）-->
			            <option>-dontoptimize</option><!--默认是开启的，这里关闭字节码级别的优化-->
			            <option>-adaptclassstrings</option><!--混淆类名之后，对使用Class.forName('className')之类的地方进行相应替代-->
			            <option>-ignorewarnings</option><!-- 忽略warn消息,如果提示org.apache.http.* 这个包里的类有问题，那么就加入下述代码：-keep class org.apache.http.** { *; }    -dontwarn org.apache.http.**-->
			            <option>-keep class org.apache.logging.log4j.util.* { *; }</option>
			            <option>-dontwarn org.apache.logging.log4j.util.**</option>
			            <option>-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod</option><!--对异常、注解信息在runtime予以保留，不然影响springboot启动-->
			            <!--不混淆所有interface接口-->
			            <option>-keepnames interface **</option>
			            <option>-keepclassmembers enum * { *; }</option><!--保留枚举成员及方法-->
			            <option>-keepparameternames</option>
			            <option>-keepclasseswithmembers public class * {
			                public static void main(java.lang.String[]);}</option> <!--保留main方法的类及其方法名-->
			            <!--忽略note消息，如果提示javax.annotation有问题，那麽就加入以下代码-->
			            <option>-dontnote javax.annotation.**</option>
			            <option>-dontnote sun.applet.**</option>
			            <option>-dontnote sun.tools.jar.**</option>
			            <option>-dontnote org.apache.commons.logging.**</option>
			            <option>-dontnote javax.inject.**</option>
			            <option>-dontnote org.aopalliance.intercept.**</option>
			            <option>-dontnote org.aopalliance.aop.**</option>
			            <option>-dontnote org.apache.logging.log4j.**</option>
			            <option>-dontnote module-info</option>
			            <!--入口程序类不能混淆，混淆会导致springboot启动不了-->
			            <option>-keep class org.jeecgframework.codegenerate.window.CodeWindow</option>
			            <option>-keep class org.jeecgframework.codegenerate.generate.impl.CodeGenerateOneToMany{*** generateCodeFile(...);}</option>
			            <option>-keep class org.jeecgframework.codegenerate.generate.pojo.** { *; }</option>
			        </options>
			        <libs>
			            <!-- 添加依赖 java8-->
			            <lib>${java.home}/lib/rt.jar</lib>
			            <lib>${java.home}/lib/jce.jar</lib>
			        </libs>
			    </configuration>
			    <dependencies>
			        <!-- https://mvnrepository.com/artifact/net.sf.proguard/proguard-base -->
			        <dependency>
			            <groupId>net.sf.proguard</groupId>
			            <artifactId>proguard-base</artifactId>
			            <version>6.0.3</version>
			        </dependency>
			    </dependencies>
			</plugin>
		</plugins>
	</build>
</project>