導航:首頁 > 源碼編譯 > maven編譯教學

maven編譯教學

發布時間:2024-02-04 12:16:12

① 如何使用Maven編譯Github上的工程

思路一:下載源碼,自己下載依賴lib,構建編譯環境,成功;
1. 從maven 地址下載,一般關心下面紅色的3個,帶sources的肯定就是源碼了,但是裡面沒有相關依賴關系,這個可以看 .pom 文件;
將sources.jar 變為zip 文件,解壓出來;
在你項目的 androidstudio project 中新建一個 java library;命名為 nettylib-4.0.14
將2中源碼文件io/netty/ 拷貝到src/main/Java/ 目錄下
studio sync,編譯看報錯的地方,或者根據 1 中地址裡面的 pom 文件,找到netty 編譯需要依賴的第三方 jar
依賴jar 查詢地址:
最後nettylib-4.0.14 中的 build.gradle 配置如下:

其中會遇到不少問題,我搞了很久,因為走了些彎路,如上圖,我直接貼出來配置了,但是仍然有少數的文件會報錯,因為和項目無關,所有直接刪掉啦;
編譯可能會遇到各種錯誤,我就不一一貼出來了,大家有問題,請留言;
思路二:在github上下載源碼,並且按照其設置來配置編譯環境
git 源碼地址:
編譯環境搭建:
主要有eclipse +maven 和使用IDEA
1. 使用eclipse +maven,比較容易報錯,因為eclipse 和maven 可能有不兼容的情況;
建議使用前最好,進入netty下載目錄,
1。mvn install 在本地Repository中安裝jar
2。mvn eclipse:eclipse 生成eclipse項目
然後就多了 .classpath 和 .project,可以直接導入eclipse
我2種都試過啦,eclipse 報錯比較難搞定,最後使用的是IDEA;
直接以maven 工程導入就行了,導入後,編譯也ok

② 如何使用maven在本地編譯打包

檢查是有已經安裝maven工具,cmd窗口中執行mvn命令。檢查已經安裝maven工具(如果不是mvn工程,需要將java工程轉換成mvn工程):

在mvn工程的pom.xml配置文件中指定jdk版本:

在mvn工程的pom.xml配置文件中 <mainClass>指定可執行jar包主類

用cmd進入 cd 到工程目錄下 ,執行如下mvn -DskipTests clean package

mvn編譯完成,提示如下信息:

在工程目錄下找到可執行的jar,如:E:\eclipse_workspace\dictionary_analysis\target\FindCrossWord-0.0.1.jar

通過cmd利用java命令執行此jar包:
E:\eclipse_workspace\dictionary_analysis\target>
java -jar FindCrossWord-0.0.1.jar

③ 如何用maven將java8寫的代碼編譯為java6平台的

在一般的Java應用開發過程中,開發人員使用Java的方式比較簡單。打開慣用的IDE,編寫Java源代碼,再利用IDE提供的功能直接運行Java 程序就可以了。這種開發模式背後的過程是:開發人員編寫的是Java源代碼文件(.java),IDE會負責調用Java的編譯器把Java源代碼編譯成平台無關的位元組代碼(byte code),以類文件的形式保存在磁碟上(.class)。Java虛擬機(JVM)會負責把Java位元組代碼載入並執行。Java通過這種方式來實現其「編寫一次,到處運行(Write once, run anywhere)」 的目標。Java類文件中包含的位元組代碼可以被不同平台上的JVM所使用。Java位元組代碼不僅可以以文件形式存在於磁碟上,也可以通過網路方式來下載,還可以只存在於內存中。JVM中的類載入器會負責從包含位元組代碼的位元組數組(byte[])中定義出Java類。在某些情況下,可能會需要動態的生成 Java位元組代碼,或是對已有的Java位元組代碼進行修改。這個時候就需要用到本文中將要介紹的相關技術。首先介紹一下如何動態編譯Java源文件。
動態編譯Java源文件
在一般情況下,開發人員都是在程序運行之前就編寫完成了全部的Java源代碼並且成功編譯。對有些應用來說,Java源代碼的內容在運行時刻才能確定。這個時候就需要動態編譯源代碼來生成Java位元組代碼,再由JVM來載入執行。典型的場景是很多演算法競賽的在線評測系統(如PKU JudgeOnline),允許用戶上傳Java代碼,由系統在後台編譯、運行並進行判定。在動態編譯Java源文件時,使用的做法是直接在程序中調用Java編譯器。
JSR 199引入了Java編譯器API。如果使用JDK 6的話,可以通過此API來動態編譯Java代碼。比如下面的代碼用來動態編譯最簡單的Hello World類。該Java類的代碼是保存在一個字元串中的。
01 public class CompilerTest {
02 public static void main(String[] args) throws Exception {
03 String source = "public class Main { public static void main(String[] args) {System.out.println(\"Hello World!\");} }";
04 JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
05 StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
06 StringSourceJavaObject sourceObject = newCompilerTest.StringSourceJavaObject("Main", source);
07 Iterable< extends JavaFileObject> fileObjects = Arrays.asList(sourceObject);
08 CompilationTask task = compiler.getTask(null, fileManager, null,null, null, fileObjects);
09 boolean result = task.call();
10 if (result) {
11 System.out.println("編譯成功。");
12 }
13 }
14
15 static class StringSourceJavaObject extends SimpleJavaFileObject {
16
17 private String content = null;
18 public StringSourceJavaObject(String name, String content) ??throwsURISyntaxException {
19 super(URI.create("string:///" + name.replace('.','/') + Kind.SOURCE.extension), Kind.SOURCE);
20 this.content = content;
21 }
22
23 public CharSequence getCharContent(boolean ignoreEncodingErrors) ??throws IOException {
24 return content;
25 }
26 }
27 }
如果不能使用JDK 6提供的Java編譯器API的話,可以使用JDK中的工具類com.sun.tools.javac.Main,不過該工具類只能編譯存放在磁碟上的文件,類似於直接使用javac命令。
另外一個可用的工具是Eclipse JDT Core提供的編譯器。這是Eclipse Java開發環境使用的增量式Java編譯器,支持運行和調試有錯誤的代碼。該編譯器也可以單獨使用。Play框架在內部使用了JDT的編譯器來動態編譯Java源代碼。在開發模式下,Play框架會定期掃描項目中的Java源代碼文件,一旦發現有修改,會自動編譯 Java源代碼。因此在修改代碼之後,刷新頁面就可以看到變化。使用這些動態編譯的方式的時候,需要確保JDK中的tools.jar在應用的 CLASSPATH中。
下面介紹一個例子,是關於如何在Java裡面做四則運算,比如求出來(3+4)*7-10的值。一般的做法是分析輸入的運算表達式,自己來模擬計算過程。考慮到括弧的存在和運算符的優先順序等問題,這樣的計算過程會比較復雜,而且容易出錯。另外一種做法是可以用JSR 223引入的腳本語言支持,直接把輸入的表達式當做JavaScript或是JavaFX腳本來執行,得到結果。下面的代碼使用的做法是動態生成Java源代碼並編譯,接著載入Java類來執行並獲取結果。這種做法完全使用Java來實現。
01 private static double calculate(String expr) throws CalculationException {
02 String className = "CalculatorMain";
03 String methodName = "calculate";
04 String source = "public class " + className
05 + " { public static double " + methodName + "() { return " + expr +"; } }";
06 //省略動態編譯Java源代碼的相關代碼,參見上一節
07 boolean result = task.call();
08 if (result) {
09 ClassLoader loader = Calculator.class.getClassLoader();
10 try {
11 Class<?> clazz = loader.loadClass(className);
12 Method method = clazz.getMethod(methodName, new Class<?>[] {});
13 Object value = method.invoke(null, new Object[] {});
14 return (Double) value;
15 } catch (Exception e) {
16 throw new CalculationException("內部錯誤。");
17 }
18 } else {
19 throw new CalculationException("錯誤的表達式。");
20 }
21 }
上面的代碼給出了使用動態生成的Java位元組代碼的基本模式,即通過類載入器來載入位元組代碼,創建Java類的對象的實例,再通過Java反射API來調用對象中的方法。
Java位元組代碼增強
Java 位元組代碼增強指的是在Java位元組代碼生成之後,對其進行修改,增強其功能。這種做法相當於對應用程序的二進制文件進行修改。在很多Java框架中都可以見到這種實現方式。Java位元組代碼增強通常與Java源文件中的註解(annotation)一塊使用。註解在Java源代碼中聲明了需要增強的行為及相關的元數據,由框架在運行時刻完成對位元組代碼的增強。Java位元組代碼增強應用的場景比較多,一般都集中在減少冗餘代碼和對開發人員屏蔽底層的實現細節上。用過JavaBeans的人可能對其中那些必須添加的getter/setter方法感到很繁瑣,並且難以維護。而通過位元組代碼增強,開發人員只需要聲明Bean中的屬性即可,getter/setter方法可以通過修改位元組代碼來自動添加。用過JPA的人,在調試程序的時候,會發現實體類中被添加了一些額外的 域和方法。這些域和方法是在運行時刻由JPA的實現動態添加的。位元組代碼增強在面向方面編程(AOP)的一些實現中也有使用。

④ 怎麼編譯運行從github上下載下來的maven項目源碼(我想調試運行的是sonarqube的源碼)跪求大神orz

maven 編譯命令
從別處拷貝來的maven項目,有時候會出現不能debug關聯的情況,即按住ctrl鍵後不能跳轉到相應的類或方法,這是需要eclipse環境生成 Eclipse 項目文件的。

可以在cmd命令窗口下進入到maven項目包含pom.xml文件的目錄下,運行 mvn eclipse:eclipse 命令即可,如果還不行,可使用mvn compile :編譯源代碼 命令。

--------------------------------------------------------------------------------------------------------------------------------
下面是一些maven的常用命令:

Maven2 的運行命令為 : mvn ,
常用命令為 :
mvn archetype:create :創建 Maven 項目
mvn compile :編譯源代碼
mvn test-compile :編譯測試代碼
mvn test : 運行應用程序中的單元測試
mvn site : 生成項目相關信息的網站
mvn clean :清除目標目錄中的生成結果
mvn package : 依據項目生成 jar 文件
mvn install :在本地 Repository 中安裝 jar
mvn eclipse:eclipse :生成 Eclipse 項目文件
生成項目
建一個 JAVA 項目 : mvn archetype:create -DgroupId=com.demo -DartifactId=App
建一個 web 項目 : mvn archetype:create -DgroupId=com.demo -DartifactId=web-app -DarchetypeArtifactId=maven-archetype-webapp

生成 Eclipse 項目
普通 Eclipse 項目執行 : mvn eclipse:eclipse
Eclipse WTP 項目執行 : mvn eclipse:eclipse –Dwtpversion=1.0

更詳細的,自己網路搜索 maven 編譯,學習一下吧

⑤ xml文件怎麼用maven編譯

創建項目根文件夾,例如Maven01
在Maven01文件夾中創建「pom.xml」文件
pom.xml文件中的內容
編寫Java類文件,Maven項目規定,所有的*.java文件必須放在src目錄下的main目錄下的java目錄中,在Maven01項目根目錄中創建一個src目錄,然後在src目錄中創建main目錄,在main目錄中再創建java文件夾
在java文件夾下創建一個Hello.java文件
在Hello.java文件中編寫代碼
使用Maven編譯Hello.java,首先進入到項目根目錄,然後使用命令」mvn compile」進行編譯
使用Maven編譯完成之後,在項目根目錄下會生成一個target文件夾
打開target文件夾,可以看到裡面有一個classes文件夾
classes文件夾存放的就是編譯成功後生成的.class文件
使用"mvn clean"命令清除編譯結果,也就是把編譯生成的target文件夾刪掉
執行完"mvn clean"命令後,target文件夾就會被刪除了。

⑥ 如何在eclipse中用maven編譯

在eclipse中用maven編譯的方法:

在項目中的「pom.xml」文件上點擊右鍵,在彈出的菜單中選擇「Run AS」à「Maveninstall」來編譯和生成項目。如下圖所示:

在編譯和生成過程中,可以在「Console」面板中可以看到Maven編譯過程的信息,如果編譯和生成成功,可以在「Console」面板看到「BUILD SUCCESS」字樣。

另外,在修改pom.xml文件中的相關jar包信息時,可能由於倉庫中不存在,就會出現一些錯誤,這時,項目編譯就可能存在一些問題。此時可通過「Maven clean」選項來清除編譯,然後再修改pom.xml到正確情況。再通過「Maven install」來編譯和生成。

⑦ 如何用Java代碼執行maven編譯

我的思路:在windows環境下,用Java調用CMD進入待操作的項目目錄下,然後執行mvn compile。或者執行bat批處理文件,用bat執行maven命令。

⑧ 如何用maven把依賴的jar包編譯到最終生成的jar包中

如果你是web項目的話,通過meven下載的jar,如果編譯的話,是會添加到工程裡面的,這樣可以直接運行.

⑨ 如何使用maven將源碼編譯成eclipse工程

1、將maven插件,直接存放到eclipse---dropins中,重啟eclipse。
2、重啟eclipse後,window——》Preferences中出現【Maven】選項
3、配置maven
由於maven的核心插件需要使用到jdk,而eclipse是運行在jre上的,所以需要配置maven關聯jdk。
Eclipse—windows-Perferences—Maven-Installations—add-installation type 選擇maven安裝目錄。在Installations中選擇新配置的maven選項。
Eclipse—windows-Perferences—Maven—User Settings
點擊Restore Defaults,沒有反應但是會在C:\Users\${User}\.m2\路徑下生成settings.xml文件。

閱讀全文

與maven編譯教學相關的資料

熱點內容
華為amd雲伺服器 瀏覽:495
漢化編程卡是什麼意思 瀏覽:126
python學習pdf 瀏覽:313
祝緒丹程序員那麼可愛拍吻戲 瀏覽:198
asp源碼會員消費系統 瀏覽:113
java反射設置 瀏覽:152
python一行文 瀏覽:439
排序演算法優缺點 瀏覽:563
惡搞加密文件pdf 瀏覽:674
gif怎麼壓縮圖片大小 瀏覽:217
命令選擇當前不可用 瀏覽:158
歐幾里得演算法如何求逆元 瀏覽:506
男中學生上課解壓神器 瀏覽:373
加密狗拔掉之後怎麼辦 瀏覽:27
雲儲存平台源碼 瀏覽:847
解壓文件蘋果手機rar 瀏覽:149
centos開機命令行模式 瀏覽:697
遍歷所有listpython 瀏覽:660
力控加密文件夾 瀏覽:517
如何更改移動伺服器密碼 瀏覽:686