agent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.oneapm.agent.android</groupId>
<artifactId>agent</artifactId>
<version>5.5.6.1</version>
</dependency><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>
<parent>
<groupId>com.oneapm.agent.android</groupId>
<artifactId>oneapm-android-agent</artifactId>
<version>5.5.6.1</version>
</parent>
<artifactId>agent</artifactId>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<finalName>OneAPM_Agent-${project.version}</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>2.7.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArguments>
<verbose/>
<bootclasspath>${java.home}/lib/rt.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
<!--robolectric单元测试插件-->
<plugin>
<groupId>com.simpligility.maven.plugins</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>4.0.0</version>
<configuration>
<sdk>
<platform>18</platform>
</sdk>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions>
</plugin>
<plugin>
<!--http://blog.sina.com.cn/s/blog_59ae3b350100yjwi.html surefire
插件用来在maven构建生命周期的test phase执行一个应用的单元测试-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<forkCount>1</forkCount>
<reuseForks>true</reuseForks>
<useSystemClassLoader>true</useSystemClassLoader>
</configuration>
</plugin>
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>replace</goal>
</goals>
<configuration>
<file>${basedir}/src/main/resources/template/ProjectVersion.template</file>
<outputFile>${basedir}/src/main/java/com/oneapm/agent/android/util/ProjectVersion.java</outputFile>
<replacements>
<replacement>
<token>@VERSION@</token>
<value>${project.version}</value>
</replacement>
</replacements>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.0.14</version>
<executions>
<execution>
<!-- 混淆时刻,这里是打包的时候混淆-->
<phase>package</phase>
<goals>
<!-- 使用插件的什么功能: 混淆-->
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- 是否将生成的PG文件安装部署-->
<!--<attach>true</attach>-->
<!-- 是否混淆-->
<obfuscate>true</obfuscate>
<!-- 指定生成文件分类 -->
<!--<attachArtifactClassifier>pg</attachArtifactClassifier>-->
<!-- 添加依赖,这里你可以按你的需要修改,这里测试只需要一个JRE的Runtime包就行了 -->
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<!--<lib>${java.home}/lib/jce.jar</lib>-->
</libs>
<!-- 加载文件的过滤器,就是你的工程目录了-->
<inFilter>com/oneapm/**</inFilter>
<!-- 输出目录-->
<outputDirectory>${project.build.directory}</outputDirectory>
<injar>${project.build.finalName}.jar</injar>
<outjar>${project.build.finalName}-pg.jar</outjar>
<options>
<!-- JDK目标版本1.8-->
<option>-target 1.6</option>
<!-- 不做收缩(删除注释、未被引用代码)-->
<option>-dontshrink</option>
<!-- 不做优化(变更代码实现逻辑)-->
<option>-dontoptimize</option>
<!-- 不路过非公用类文件及成员-->
<option>-dontskipnonpubliclibraryclasses</option>
<option>-dontskipnonpubliclibraryclassmembers</option>
<!-- 优化时允许访问并修改有修饰符的类和类的成员 -->
<option>-allowaccessmodification</option>
<!-- 确定统一的混淆类的成员名称来增加混淆-->
<option>-useuniqueclassmembernames</option>
<option>-printmapping ${project.basedir}/src/main/resources/agent-proguard-map.txt</option>
<!--保证spring注解能力-->
<!--<option>--keepdirectories</option>-->
˚
<!-- 不混淆所有包名,本人测试混淆后WEB项目问题实在太多,毕竟Spring配置中有大量固定写法的包名-->
<!--<option>-keeppackagenames</option>-->
<!-- 不混淆所有特殊的类-->
<option>-keepattributes
Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod
</option>
<!-- 不混淆所有的set/get方法,毕竟项目中使用的部分第三方框架(例如Shiro)会用到大量的set/get映射-->
<!--<option>-keepclassmembers public class **.Callback {void set*(***);*** get*();}</option>-->
<!--<option>-keepclassmembers public class **.Callback {**;}</option>-->
<!--不混淆枚举类-->
<option>-keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); }</option>
<!-- interface 不作混淆 -->
<option>-keep interface **</option>
<!-- Activity 不作混淆 -->
<option>-keep class **.Activity {*;}</option>
<option>-keep class **.AliasActivity {*;}</option>
<option>-keep class **.Application {*;}</option>
<option>-keep class **.LauncherActivity {*;}</option>
<option>-keep class **.ExpandableListActivity {*;}</option>
<option>-keep class **.CrashCatcher {*;}</option>
<option>-keep class **.AdkSettings {*;}</option>
<option>-keep class **.Version {*;}</option>
<option>-keep class **.Callback {*;}</option>
<option>-keep class **.OkCallback {*;}</option>
<option>-keep class **.OkCallback2 {*;}</option>
<option>-keep class **.OneApmConfig {*;}</option>
<option>-keep class **.OneApmAgent {*;}</option>
<option>-keep class **.Utility {*;}</option>
<option>-keep class **.JsNativeBridge {*;}</option>
<option>-keep class **.JsNativeBridgeAPI17 {*;}</option>
<option>-keep class **.MyJNIHelper {*;}</option>
<option>-keep class **.JsAgentUtils {*;}</option>
<option>-keep class **.Utility {*;}</option>
<option>-keep class **.CordovaWebViewCallback {*;}</option>
<option>-keep class **.CordovaSystemWebViewCallback {*;}</option>
<option>-keep class **.OneApmPackage {*;}</option>
<option>-keep class **.OneApmRN {*;}</option>
<option>-keep class **.RNCallback {*;}</option>
<option>-keep class **.HarmonyUtil {*;}</option>
<option>-keep class **.OkHttpHooker {*;}</option>
<!-- 忽略打包时的告警信息 -->
<!--<option>-ignorewarnings</option>-->
</options>
</configuration>
</plugin>
<plugin>
<groupId>com.coderplus.maven.plugins</groupId>
<artifactId>copy-rename-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>rename</goal>
</goals>
<configuration>
<fileSets>
<fileSet>
<sourceFile>${project.build.directory}/OneAPM_Agent-${project.version}.jar
</sourceFile>
<destinationFile>
${project.build.directory}/OneAPM_Agent-${project.version}-original.jar
</destinationFile>
</fileSet>
<fileSet>
<sourceFile>${project.build.directory}/OneAPM_Agent-${project.version}-pg.jar
</sourceFile>
<destinationFile>${project.build.directory}/OneAPM_Agent-${project.version}.jar
</destinationFile>
</fileSet>
</fileSets>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<!--jcenter仓库地址-->
<id>jcenter</id>
<distributionManagement>
<repository>
<id>bintray-oneapm-android-oneapm-android-agent</id>
<name>oneapm-android-oneapm-android-agent</name>
<url>https://api.bintray.com/maven/oneapm-android/oneapm-android-agent/agent/;publish=1</url>
</repository>
</distributionManagement>
<repositories>
</repositories>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>1.28</version>
<scope>test</scope>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.android.sdk</groupId>
<artifactId>foroneapmonly</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.robolectric</groupId>
<artifactId>robolectric</artifactId>
<version>3.1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.robolectric</groupId>
<artifactId>shadows-support-v4</artifactId>
<version>3.1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.8</version>
<scope>test</scope>
</dependency>
<!--okhttp3单元测试需要okio1.5-->
<dependency>
<groupId>com.squareup.okio</groupId>
<artifactId>okio</artifactId>
<version>1.5.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.squareup.retrofit2/retrofit -->
<dependency>
<groupId>com.squareup.retrofit2</groupId>
<artifactId>retrofit</artifactId>
<version>2.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.7.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>
<!--采用的安装到本地仓库-->
<dependency>
<groupId>com.tencent.smtt.sdk</groupId>
<artifactId>x5-browser</artifactId>
<version>1.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.ow2.asmdex</groupId>
<artifactId>asmdex</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.cordova</groupId>
<artifactId>cordova</artifactId>
<version>3.5.1</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.oneapm.agent.android</groupId>
<artifactId>rewriter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.oneapm.agent.android</groupId>
<artifactId>dependencies</artifactId>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.facebook.react/react-native -->
<dependency>
<groupId>com.facebook.react</groupId>
<artifactId>react-native</artifactId>
<version>0.20.2</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>ohos</groupId>
<artifactId>ohos</artifactId>
<version>2.1.1.21</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
</dependencies>
</project>