用户组 
易积分722
热心0
好评1
|
本帖最后由 suiyuan 于 2022-6-29 20:03 编辑
- package com.e4a.compile;
- import com.windows.e4a.GenerateItem;
- import com.windows.e4a.file.CanonicalFile;
- import com.windows.e4a.utils.PinyinUtil;
- import com.windows.e4a.工程属性;
- import com.windows.e4a.系统工具;
- import com.windows.e4a.附加信息;
- import org.junit.Test;
- import java.io.File;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * ******************************************************
- * so文件路径默认如:
- * src/main/jniLibs
- * src/libs
- * <p>
- * jar依赖默认路径如:libs/xxxx.jar
- * assets默认路径 如:src/main/assets
- * <p>
- * <p>
- * res资源注意:
- * 资源全部会被打包, 请注意你的资源是否有用;
- * 你不需要管为什么会全部打包,那肯定是支持了;
- * 注意资源名称不要与E4A默认资源名称重复
- * 如 style.xml string.xml 注意修改名称
- * <p>
- * ******************************************************
- * 所有类名不要包含"类库二字"
- * 所有依赖类名或包名切勿与类库名称
- * ******************************************************
- * <p>
- * 支持自动导入依赖!
- * 自动删除不识别的注解
- * *********************************************************
- * 如果打包后 E4A报R.java 错误,则需要检查依赖资源路径是否存在或xml中又为导入的依赖
- * **************************************************************************
- * E4A类库快速开发依赖包 当前版本:4.5
- * <p>
- * __________________作者:随缘
- * __________________QQ:874334395 或 531772873
- * <p>
- * <p>
- * <p>
- * 4.5: 更新内容
- * 1:默认全包扫描
- * 2:一个module一个类库
- * 3:使用E4A内置jar依赖
- * 4:真实模拟E4A窗口环境
- * 5:这可能是最后一个版本了
- * <p>
- * <p>
- * 注意 : values资源规范:
- * 1.节点不能与E4A默认节点重复
- * 2.资源文件命名不得与E4A默认文件同名
- * 3. e4astyle.xml strings.xml styles.xml color.xml E4ARuntime.jar 这些命名全部会被忽略打包
- * <p>
- * 特别提醒:需要讲此类放入单元测试(test)目录下,否则无法运行
- */
- public class 类库打包test {
- static {
- 工程属性.E4A根目录 = "C:/E4A";
- 工程属性.类库名称 = "随缘_广告";
- 工程属性.类库类型 = 工程属性.可视库;
- 工程属性.类库版本 = 2.0;
- 工程属性.作者QQ = "874334395";
- 工程属性.类库作者 = "随缘";
- 工程属性.MODULE_NAME = PinyinUtil.getPinyin(工程属性.类库名称, "");
- 工程属性.自定义属性名称1 = null;
- 工程属性.自定义属性名称2 = null;
- 工程属性.自定义属性名称3 = null;
- 工程属性.属性区图标_bmp = null;
- 工程属性.组件区图标_bmp = null;
- 工程属性.设计区图标_bmp = null;
- 工程属性.自动安装类库 = true;
- 工程属性.自动打开源码 = true;
- //如果有附加信息 则必须打开
- 工程属性.解析附加信息 = true;
- //合并依赖:指把所有项目依赖jar合并成一个jar文件,优点:如果别人想提取你的依赖,那么就得整个提走(如果不会拆分可能引起异常)
- // 缺点:合并后也不便于个人依赖更新
- 工程属性.合并依赖 = false;
- }
- @Test
- public void 合并jar包() throws Exception {
- //注意合并JAR会进行覆盖操作,此实例表示a.jar覆盖b.jar,c覆盖a,b 以此类推
- List<File> jarList = new ArrayList<>();
- jarList.add(new File("D:/abc/b.jar"));
- jarList.add(new File("D:/abc/a.jar"));
- jarList.add(new File("D:/abc/c.jar"));
- GenerateItem.jar合并(new File("D:/abc/E4ARuntime.jar"), jarList);
- }
- @Test
- public void 生成RJAVA() throws Exception {
- //为类库生成R.java
- GenerateItem.生成Rjava();
- }
- @Test
- public void 打开类库安装目录() throws Exception {
- GenerateItem.打开类库安装目录();
- }
- @Test
- public void arr垃圾清理() throws Exception {
- GenerateItem.Aar垃圾清理();
- }
- @Test
- public void aar解压() throws Exception {
- GenerateItem.解压aar(工程属性.MODULE_NAME);
- }
- @Test
- public void 打开ELP() throws Exception {
- GenerateItem.打开ELP();
- }
- @Test
- public void 创建E4A窗口环境() throws Exception {
- GenerateItem.创建E4A窗口环境();
- }
- /**
- * 导入elp源码
- * 注意:导入后需要手动修改工程属性:否则打包类找不到类库目录
- */
- @Test
- public void importProject() throws Exception {
- // CanonicalFile.导入项目(new File("D:/xxx.elp"));
- }
- /**
- * 创建类库项目
- */
- @Test
- public void create() throws Exception {
- CanonicalFile.创建项目();
- }
- @Test
- public void 编译类库() {
- //处理aar
- //GenerateItem.解压aar(MODULE_NAME);
- //可以选择
- try {
- GenerateItem.解压aar(工程属性.MODULE_NAME);
- GenerateItem.set附加信息(new 附加信息() {
- //如果检测到附加信息则会回调此事件
- @Override
- public String Permission附加(String Permission信息) {
- return Permission信息;
- }
- //如果检测到附加信息则会回调此事件
- @Override
- public String Manifest附加(String Manifest信息) {
- return Manifest信息;
- }
- //如果检测到附加信息则会回调此事件
- @Override
- public String mainActivity附加(String mainActivity信息) {
- return mainActivity信息;
- }
- });
- GenerateItem.开始打包();
- GenerateItem.Aar垃圾清理();
- //注意以下是垃圾回收代码,一般情况是需要打开的,如果你不能确保你的类库是否有错误请不要打开!打开后控制面板报错无法通过鼠标点击进入错误区
- // GenerateItem.删除文件或目录_CMD(系统工具.路径_写出路径);
- // GenerateItem.删除文件或目录_CMD(系统工具.路径_MODULE_BUILD_GEN);
- // GenerateItem.删除文件或目录_CMD(系统工具.路径_MODULE_BUILD_SRC);
- // GenerateItem.删除文件或目录_CMD(系统工具.路径_MODULE_BUILD_类库集NAME);
- 打开类库安装目录();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
复制代码
|
-
-
|