'compile'에 해당하는 글 2건

Note: xxx.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
cs


정상적(?)으로 컴파일 되었고, 실행도 정상적이지만 나타나는 경고.

보통 map, list, collection, class 등 캐스팅시에 명시적인 정의가 안되어 있을 경우 나타나지만, 

어떤 타입이 올지 불명확한 상태에서의 캐스팅을 강제하는 것 역시 위 경고가 나타난다.


해당 코드를 확인하고 명확하게 수정해 주려면 아래 파라미터를 추가하고, 해당 파일을 지정하면 상세 로그가 나타난다.


> javac -Xlint:unchecked xxxxx.java
cs



예를 들어, 아래처럼 타입을 명시하였더라도,


HashMap<StringObject> map = new HashMap<>();
List<String> list = new ArrayList<>();
cs


다음 코드에서 경고가 났을 때,


list = (List<String>) map.get("itemList");
cs


아래처럼 바꿔주면 경고를 막을 수 있다.


if (map.get("itemList") instanceof List) {
    List insertQuery = (List) map.get("queryList");
}
cs


또는, 


검증되지 않은 연산자 관련 경고를 무시해주는 아래 어노테이션을 사용해도 된다.


@SuppressWarnings("unchecked")
cs


경고를 처리하지 않더라도 예외를 제외하고는 큰 문제가 없겠지만 그래도...

알아두면 좋다니~




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

mvn compile

Tool/Maven 2013. 5. 6. 23:51

mvn archetype:generate 명령으로 프로젝트를 생성했습니다.
Maven in 5 minute 에서는 프로젝트 생성 후에 mvn package 명령으로 main 소스와 test 소스를 모두 컴파일 했습니다.
mvn compile 명령으로 main 소스만 컴파일 할 수 있습니다.

 

$ mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building myapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ myapp ---
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/maven/myapp/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ myapp ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to /home/maven/myapp/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.378s
[INFO] Finished at: Fri May 03 18:34:06 KST 2013
[INFO] Final Memory: 8M/108M
[INFO] ------------------------------------------------------------------------

 

target/classes 디렉토리에 class들이 컴파일 되었습니다.
마찬가지로 mvn test-compile 명령으로 test 소스만 컴파일 할 수 있으며 이 class들은 target/test-classes 에 위치합니다.
mvn test 명령은 main 소스들을 컴파일하고 test 소스들을 컴파일하고 실행하여 단위 테스트(unit test)를 할 수 있습니다.

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,