Skip to content

Latest commit

 

History

History
1239 lines (891 loc) · 65.3 KB

J2EE学习之路.md

File metadata and controls

1239 lines (891 loc) · 65.3 KB

J2EE学习之路 Awesome

官方文档

Java tutorial

Struts

Spring

Hibernate

WebService

常用第三方webservice

IDE

Eclipse

Eclipse根据java代码生成UML图

Tomcat

AWT/Swing/SWT/Jface

Hudson

用Java编写的持续集成(CI)工具。

Jenkins

用Java编写的一个开源持续集成工具。项目是在和Oracle发生争执后的来自于Hudson 的分支。

Atlassian Bamboo

持续集成和交付工具,它将自动化构建、测试和发布捆绑到单个流程中。

TeamCity

来自于JetBrains的一个基于Java构建的管理和持续集成服务器。

DbUnit

JMockit

Fuzz

JUnit

TestNG

TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use.

ReportNG

ReportNG is a simple HTML reporting plug-in for the TestNG unit-testing framework. It is intended as a replacement for the default TestNG HTML report. The default report is comprehensive but is not so easy to understand at-a-glance. ReportNG provides a simple, colour-coded view of the test results.

SLF4J

The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (e.g. java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framework at deployment time.

Log4j

Logback

Logback is intended as a successor to the popular log4j project, picking up where log4j leaves off.

Log4E

Log4E is an Eclipse Plugin which helps you to use your logger easily in Java Projects.The Plugin Log4E is not bound to any special logging framework. Thus you might be able to adapt to your own logger by defining your own templates using the preferences. It has active support for Log4j, Log4j 2, SLF4J, Commons Logging and JDK 1.4 logging.

代码评审

guava

jga

jga is a functors library: the intent is to explore and exploit functors as a design and implementation tool to reduce boilerplate coding. A functor is an object that encapsulates a function or expression: it can take arguments and produce results, as can any method, expression, or function (in other languages that support functions). Unlike an expression, as an object it can be passed as an argument without being executed; it can be persisted to a database or file; it can be serialized and passed from client to server (and back); and it can be instantiated at runtime based on information unavailable at compile-time.

Java Class Dependency Analyzer

OW2

OW2 is an independent, global, open-source software community. The mission of OW2 is to a) promote the development of open-source middleware, generic business applications, cloud computing platforms and b) foster a vibrant community and business ecosystem.

ForgeRock

apache

Apache Commons

Apache Commons is an Apache project focused on all aspects of reusable Java components.

sandbox中的项目无法直接通过maven进行依赖,必须通过svn下载源码,部署到本地maven仓库中。例如对于sandbox中的classscan项目:

    # 项目地址:<http://commons.apache.org/sandbox/commons-classscan/>
    svn checkout http://svn.apache.org/repos/asf/commons/sandbox/classscan classscan
    cd classscan

    # 当install带有parent的maven项目时,如果没有把parent一并install,其它项目引用时会出现
    # mvn install--Failed to read artifact descriptor for org.apache.maven.plugins:maven-source-plugin:jar:2.1.2
    cd parent (classscan/parent)
    mvn clean package install -DskipTests


    cd ../api (classscan/api)
    mvn clean package install -DskipTests

    cd ../bcel (classscan/bcel)
    mvn clean package install -DskipTests

在pom.xml中添加依赖

```xml
    <dependency>
        <groupId>org.apache.commons.classscan</groupId>
        <artifactId>bcel</artifactId>
        <version>0.2-SNAPSHOT</version>
    </dependency>
    <dependency>
            <groupId>org.apache.commons.classscan</groupId>
            <artifactId>api</artifactId>
            <version>0.2-SNAPSHOT</version>
    </dependency>

Eclipse中Update Project,选择Force Update of Snapshots/Releases

Apache HttpComponents

Maven and M2Eclipse

maven快速下载某个jar包依赖的所有jar

经常碰到这种事情:在一些非maven工程中(由于某种原因这种工程还是手工添加依赖的),需要用到某个新的类库(假设这个类库发布在maven库中),而这个类库又间接依赖很多其他类库,如果依赖路径非常复杂的话,一个个检查手动下载是很麻烦的事.下面给出一个便捷的办法,创建一个新目录里面建一个maven pom文件, 添加需要依赖的类库:

    <?xml version="1.0"?>
    <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>com.dep.download</groupId>
        <artifactId>dep-download</artifactId>
        <version>1.0-SNAPSHOT</version>
        <dependencies>
            <dependency>
                <groupId>com.xx.xxx</groupId>
                <artifactId>yy-yyy</artifactId>
                <version>x.y.z</version>
                <scope/>
            </dependency>
        </dependencies>
    </project>

在这个目录下运行命令,所有跟这个类库相关的直接和间接依赖的jar包都会下载到 ./target/dependency/下

`mvn -f download-dep-pom.xml dependency:copy-dependencies`

杂项

间接依赖的jar包能否直接使用

如果工程依赖A.jar,并用maven设置好依赖,同时A.jar会依赖B.jar,所以maven在下载A.jar的同时会下载B.jar,这时如果项目发现需要使用B.jar中的一些内容,在maven中不必从新设置依赖,可以在工程中直接使用。

把某个本地jar包安装到本地仓库中

mvn install:install-file -DgroupId="edu.jiangxin" -DartifactId=”gcu” -Dversion="1.0.0"

-Dpackaging=”jar” -Dfile="D:\CS\J2EE\lib\edu.jiangxin.gcu-1.0.0.jar"

把某个本地jar包部署到某个远程仓库中

mvn deploy:deploy-file -DgroupId="edu.jiangxin" -DartifactId=”gcu” -Dversion="1.0.0"

-Dpackaging=”jar” -Dfile="D:\CS\J2EE\lib\edu.jiangxin.gcu-1.0.0.jar" -Durl=http://yourlocalrepository:8888/archiva/repository/internal

-DrepositoryId=internal

bintray

https://bintray.com/

Ant

Eclipse Color Themes

MyEclipse

Clover(收费)

CAP (code analysis plugin)

CAP (code analysis plugin) is an eclipse plugin (written in Java) that analysis your java project. It checks dependencies between the classes and packages and gives you a hint about the architecture, reusability and maintainability. ("JDepend 2")

Visual Performance Analyzer

VisualVM

Eclipse Class Decompiler

JD(Java Decompiler)

注:不支持命令行使用,因而很难批量编译。

jad

注:jad支持命令行方式使用,最新版本为1.5.8g,支持的class版本过低。经常出现问题:The class file version is 48.0 (only 45.3, 46.0 and 47.0 are supported)。还有一个工具uuDeJava,也是基于jad,所以估计也难以避免这个问题。

jdec

JODE

JODE is a java package containing a decompiler and an optimizer (aka obfuscator ;-) for java.

DJ Java Decompiler

注:收费软件,没有试用过

ProGuard

ProGuard is a free Java class file shrinker, optimizer, obfuscator, and preverifier. It detects and removes unused classes, fields, methods, and attributes. It optimizes bytecode and removes unused instructions. It renames the remaining classes, fields, and methods using short meaningless names. Finally, it preverifies the processed code for Java 6 or higher, or for Java Micro Edition.

Metric

SourceHelper

The “Source Helper” plugin is an Eclipse plugin that takes a very useful feature that exists in Intellij IDEA and puts it into Eclipse. In short, the feature shows the code of an out-of-visible-range starting bracket by floating a window that shows the code you cannot see. This helps immensely when trying to identify what closing bracket belongs to what part of the code.

Structure101

Structure101 is an agile architecture development environment (ADE) that lets the software development team organize a codebase.

EJ-Technologies一家(收费)

FORTIFY SCA(收费)

klocwork(收费)

GProf

Dot and Graphviz

Graphviz (Graph Visualization Software) 是一个由AT&T实验室启动的开源工具包。DOT是一种图形描述语言,非常简单的,Graphviz就是用来处理这种语言的工具。

sikuli

exe4j

JBoss

The JBoss AS community project has been renamed to the WildFly community project, which has a new home at wildfly.org. The JBoss name now only applies to the commercially supported product, called JBoss EAP, which is derived from the WildFly community project and is available at <http://www.jboss.org/products/eap/overview/>.

GlassFish

GlassFish 是一款强健的商业兼容应用服务器,达到产品级质量,可免费用于开发、部署和重新分发。

Virgo

Virgo from EclipseRT is a completely module-based Java application server that is designed to run enterprise Java applications and Spring-powered applications with a high degree of flexibility and reliability. It offers a simple yet comprehensive platform to develop, deploy, and service enterprise Java applications.

Jetty

Jetty provides a Web server and javax.servlet container, plus support for SPDY, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations. These components are open source and available for commercial use and distribution.

字符编码判断

EZMorph

EZMorph is simple java library for transforming an Object to another Object.

Apache Shiro

iBATIS/MyBatis

appfuse

TopLink

json

neethi

XML

SAXON

The XSLT and XQuery Processor

jsoup

HTML Parser

Java port of Mozilla charset detector(jchardet)

JMX

jsch

yFiles

The yFiles diagramming software components are extensive class libraries that enable you to add high-quality diagramming functionality to your own software applications

OpenLDAP

OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol.

Protobuf

zip4j

JFlex

JavaCC

sablecc

Xtext

antlr

cglib

Javassist

jclasslib

iCal4j

分词

规则引擎

Drools

jBPM

OpenAS2

OpenAS2 is a java-based implementation of the EDIINT AS2 standard. It is intended to be used as a server. It is extremely configurable and supports a wide variety of signing and encryption algorithms.

Java Native Access (JNA)

mpiJava

eBus

Java操作Word/Excel/PowerPoint/PDF

MVEL(Drools)

OGNL(Struts)

JSP EL

freemarker

Velocity

Aurora

文件类型检测

Mina

数据库连接池

Eclipse插件开发

Hadoop

Ambari

Spark

Storm

http://storm.apache.org/index.html https://storm.apache.org/javadoc/apidocs/index.html

nutch

ZooKeeper

Lucene

Apache Flume

Solr

Commons DbUtils: JDBC Utility Component

curator

Sqoop

Avro

Chukwa

Thirft

CAS/SSO

Prometheus

grafanagrafana

collectd

influxdata

opengrok

Markdown转换