• 记录程序打包发布方法


    先说Linux下C语言程序:

    使用Eclipse创建一个GUN Autotools的Hello World ANSI C Autotools Project生成可以自动打包的目录结构,然后修改Makefile.am文件,configure、make之后make dist打包。

    再说Maven管理的Java的Runnable Jar程序:

    增加POM文件plugins项的maven shade plugin:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.2</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <transformers>
                        <transformer
                            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            <mainClass>com.yeecloud.netpush.syn.YeepushSynMain</mainClass>
                        </transformer>
                        <transformer
                            implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                            <resource>META-INF/spring.handlers</resource>
                        </transformer>
                        <transformer
                            implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                            <resource>META-INF/spring.schemas</resource>
                        </transformer>
                    </transformers>
                </configuration>
            </execution>
        </executions>
    </plugin>

    说明:spring.handlers和spring.schemas的AppendingTransformer是为了避免打包时候后一个handlers或schemas的文件覆盖前一个

    然后使用命令mvn package打包

    再说Maven管理的Java Web项目打包:

    直接使用命令mvn package打包

    Maven代码混淆:

    <plugin>
        <groupId>com.pyx4me</groupId>
        <artifactId>proguard-maven-plugin</artifactId>
        <version>2.0.4</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>proguard</goal>
                </goals>
                <configuration>
                    <attach>true</attach>
                    <libs>
                        <lib>${java.home}/lib/rt.jar</lib>
                        <lib>${java.home}/lib/jce.jar</lib>
                        <lib>${java.home}/lib/jsse.jar</lib>
                    </libs>
                    <options>
                        <option>-optimizationpasses 3</option>
                        <option>-overloadaggressively</option>
                        <option>-useuniqueclassmembernames</option>
                        <option>-verbose</option>
                        <option>-keepattributes Exceptions, Signature, Deprecated, InnerClasses</option>
                        <option>-keep public class ${Main-Class} {public *;}</option>
                    </options>
                </configuration>
            </execution>
        </executions>
        <dependencies>
            <dependency>
                <groupId>net.sf.proguard</groupId>
                <artifactId>proguard</artifactId>
                <version>4.10</version>
                <scope>runtime</scope>
            </dependency>
        </dependencies>
    </plugin>
  • 相关阅读:
    C#设计模式-单例模式
    MVC图片上传并显示缩略图
    asp.net MVC发布iis无法加载css,js和图片
    Silverlight中获取控件中子控件
    Lambda加自定义比较器实现两个列表的合并
    MVC文件上传
    pt-osc测试
    MySQL DDL方案测试及选型.
    gh-ost测试
    gh-ost原理
  • 原文地址:https://www.cnblogs.com/jieyuefeng/p/3502958.html
Copyright © 2020-2023  润新知