文档章节

用 Gradle 構建 jar 包

星塵子
 星塵子
发布于 2015/05/18 22:36
字数 301
阅读 44
收藏 0

Gradle 安裝

# 切換到 Downloads 目錄
cd Downloads
# 下載 Gradle
aria2c https://services.gradle.org/distributions/gradle-2.5-all.zip  
# 解壓到指定目錄  
unzip -d ~/dev/ gradle-2.5-all.zip
cd ~/dev/
mv grale-2.5/ gradle/
# 配置路徑    
echo "export GRADLE_HOME=$HOME/dev/gradle" >> .zshrc
echo "export PATH=$GRADLE_HOME/bin:$PATH" >> .zshrc 
# 驗證
gradle -v

創建 Java 項目目錄

# gradle 建議的目錄結構
cd ~/code/java/
mkdir MD5
mkdir -p src/main/java/me/xyly624/example
mkdir -p src/main/resources
mkdir -p src/test/javame/xyly624/example
mkdir -p src/test/resources

編碼

//MD5.java(src/main/java/me/xyly624/example/)
package me.xyly624.example;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.math.BigInteger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MD5{

    private static final Logger logger = 
        LoggerFactory.getLogger(MD5.class);    

    public static String MD5Hash(String toHash){
        try{
            return String.format("%032x",
                new BigInteger(1,
                    MessageDigest.getInstance("MD5")
                    .digest(toHash.getBytes())));
        }catch(NoSuchAlgorithmException ex){
            logger.error("[MD5Hash]:{}", ex);
            throw new RuntimeException(ex);
        }
    }

    public static void main(String[] args){
        if (args != null && args.length == 1){            
            System.out.println(MD5Hash(args[0]));
        }
    }
}


//logback.xml(src/main/resources)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %-5level %logger{36} - %msg%n
            </Pattern>
        </layout>
    </appender>

    <root level="debug">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

//build.gradle
apply plugin:'java'

version = '1.0'

jar {
    manifest {
        attributes 'Main-Class': 'me.xyly624.example.MD5',
        'version': version
    }
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }}
}

repositories {
    //mavenCentral()  
    maven { url 'http://maven.oschina.net/content/groups/public/' }
}

dependencies {
    compile 'ch.qos.logback:logback-classic:1.1.3'
}

###構建並運行 #構建 gradle build #運行 java -jar MD5-all-1.0.jar 'gradle'

© 著作权归作者所有

星塵子
粉丝 11
博文 24
码字总数 5170
作品 0
浦东
高级程序员
私信 提问
在 IntelliJ IDEA 14.1.4 上搭建 JFinal 開發環境 (Gradle 版)

前言 本文的開發環境: [IntelliJ IDEA][0] 14.1.4 [JFinal][1] 2.0 [Gradle][2] 2.4 IDEA 的安裝略過。 新建項目 打開 IDEA 後新建項目,選擇 Gradle 並勾選右側 Web 選項後點擊 Next。 分別...

星塵子
2015/08/08
337
0
webx3 jar包 那裏有下載

看了一下資料,好像需要用 Maven構建 ,但不會這個,自己下了一個,按照書上的執行,出現錯誤。頭痛,那裏直接有 webx3的jar包下載呢

yaoyaoyuanzhi
2012/03/08
1K
0
迁移ADT/ANT构建的Android项目至Gradle,a walk through

README.md Migrate To Gradle 手动迁移ADT 的ANT结构工程至Gradle 前言 现在Android Studio 已经发布正式版,其带来的新的功能对于原来的eclipse 用户是非常友好的,只需要指定目录就能自动将...

云栖希望。
2017/12/04
0
0
RePlugin插件化的问题和解决办法

这篇文章基于 Replugin2.2版本的,后续可能会随着框架改动和bug修复有些问题可能就不存在了。如果你跟我一样也是对插件化开发跃跃欲试,又在里面栽跟头了,我想本片文章可能会对大家提供点小...

香脆的大鸡排
2017/09/29
0
0
Gradle实践之自定义打包jar+Log开关自动关闭

上一篇博客介绍了Gradle实践之多渠道自动化打包+版本号管理。由于我在公司里主要是做SDK开发的,这次我想介绍一下如何使用Gradle打出自己想要的jar包,并根据需要混淆、发布jar包。然后再介绍...

SuShine
2016/08/03
824
1

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部