maven을 사용하여 dubbo 프로젝트를 실행용 jar 패키지로 패키징하기 위해 이 기사에서 설명한 방법은 다음과 같습니다. maven 패키징 플러그인 maven-jar-plugin을 사용하여 pom.xml 끝에 일부 코드를 추가합니다. 파일. 관심 있는 친구들이 한 번 살펴보세요. 도움이 되길 바랍니다
maven 패키징 방법
maven 패키징 플러그인 사용 maven-jar-plugin
#🎜 🎜#pom.xml
파일 끝에 다음 코드를 추가합니다. maven-jar-plugin
在pom.xml
文件最后新增以下代码。maven-dependency-plugin
是指将依赖的jar包复制到指定目录maven-resources-plugin
将依赖的resources复制到指定目录
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <configuration> <archive> <manifest> <!-- 是否依赖外部jar包 --> <addClasspath>true</addClasspath> <!-- 依赖外部jar包路径 --> <classpathPrefix>lib/</classpathPrefix> <!-- 启动函数 --> <mainClass>com.alibaba.dubbo.container.Main</mainClass> </manifest> </archive> <!-- 打包之后输出目录 --> <outputDirectory>${project.build.directory}/maven-archiver</outputDirectory> <!-- 剔除已打包的配置文件 --> <excludes> <exclude>*.*</exclude> <exclude>config/*</exclude> <exclude>config/tencent/*</exclude> <exclude>META-INF/spring/*</exclude> </excludes> </configuration> </plugin> <!-- 拷贝依赖的jar包到lib目录 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.8</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory> ${project.build.directory}/maven-archiver/lib </outputDirectory> </configuration> </execution> </executions> </plugin> <!-- 拷贝依赖的资源文件包到resources目录 --> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-resources</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/maven-archiver/resources</outputDirectory> <resources> <resource> <directory>${basedir}/src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </configuration> </execution> </executions> </plugin> </plugins> </build>
- 运行jar包方式
打包之后的目录结构
包含了class文件,以及需要的配置文件信息(不包含excludes的配置文件)
在MANIFEST.MF
中包含了运行需要的信息
Class-Path: lib/commons-beanutils-1.8.3.jar lib/commons-betwixt-0.8.jar ... Main-Class: com.alibaba.dubbo.container.Main
java -jar
启动命令
java -jar 执行命令时,会用到目录META-INFMANIFEST.MF中Main-Class的参数,这个是在打包的时候指定函数的入口。
java -jar x-0.0.1-SNAPSHOT.jar
java -cp
启动命令
java -cp .:x-0.0.1-SNAPSHOT.jar packname.mainclassname
因为我工程中需要引用外部的resources文件所以我通常用这种方式启动
配置文件地址是绝对路径
java -cp /Users/username/resources:dubbo-service-1.0.jar com.alibaba.dubbo.container.Main
-cp
和-classpath
是相同的效果
java -cp 是指定运行所依赖其他类的路径,通常是类库、jar 包之类,多个依赖在Window
上用分号";"隔开,linux
上用":"隔开。
表达式支持通配符
java -cp .:/Users/username/*.jar packname.mainclassname
- 打成一个jar包
如果需要将依赖的jar包都达到一个jar包中运行,可以使用maven-shade-plugin
maven-dependent-plugin
은 종속 jar 패키지를 지정된 디렉터리에 복사하는 것을 의미합니다. maven-resources-plugin
종속 리소스를 지정된 디렉터리에 복사합니다. 디렉토리 디렉토리
- jar 패키지 실행 방법
패키징 후 디렉토리 구조 에는 클래스 파일과 필수 구성 파일 정보가 포함되어 있습니다. 제외 항목을 포함한 구성 파일)
MANIFEST.MF
에서 작업에 필요한 정보가 포함되어 있습니다.#🎜🎜 #rrreee #🎜🎜#java -jar#🎜🎜#Start 명령#🎜🎜#java -jar 명령을 실행할 때 META-INFMANIFEST.MF 디렉터리의 Main-Class 매개변수가 사용됩니다. 함수의 진입점은 패키징할 때 지정됩니다. #🎜🎜#rrreee#🎜🎜#java -cp#🎜🎜#Startup command#🎜🎜#rrreee#🎜🎜#프로젝트에서 외부 리소스 파일을 참조해야 하기 때문에 주로 이것을 사용합니다. 시작 방법#🎜🎜#구성 파일 주소는 절대 경로입니다#🎜🎜#rrreee#🎜🎜#-cp
및 -classpath
는 동일한 효과 #🎜🎜#java -cp는 작업이 의존하는 다른 클래스(일반적으로 클래스 라이브러리, jar 패키지 등)의 경로를 지정합니다. 여러 종속성은 Window
에서 세미콜론 ";"으로 구분됩니다. linux
는 ":"으로 구분됩니다. #🎜🎜#표현은 와일드카드를 지원합니다#🎜🎜#rrreee- jar 패키지로 만들기
maven-shade-plugin
플러그인을 사용할 수 있습니다. #🎜🎜#이 플러그인의 주요 기능은 종속 jar 패키지를 현재 jar 패키지에 패키징하고 패키징 중에 클래스 이름을 바꾸는 것입니다. 이를 통해 jar 패키지의 다중 버전 충돌을 해결할 수 있습니다. 공식 플러그인 문서를 확인하세요. #🎜🎜##🎜🎜#관련 튜토리얼: #🎜🎜#Java 비디오 튜토리얼#🎜🎜##🎜🎜##🎜🎜#위 내용은 maven을 사용하여 dubbo 프로젝트를 jar 패키지로 패키징하여 실행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사에서는 Java 프로젝트 관리, 구축 자동화 및 종속성 해상도에 Maven 및 Gradle을 사용하여 접근 방식과 최적화 전략을 비교합니다.

이 기사에서는 Maven 및 Gradle과 같은 도구를 사용하여 적절한 버전 및 종속성 관리로 사용자 정의 Java 라이브러리 (JAR Files)를 작성하고 사용하는 것에 대해 설명합니다.

이 기사는 카페인 및 구아바 캐시를 사용하여 자바에서 다단계 캐싱을 구현하여 응용 프로그램 성능을 향상시키는 것에 대해 설명합니다. 구성 및 퇴거 정책 관리 Best Pra와 함께 설정, 통합 및 성능 이점을 다룹니다.

이 기사는 캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA를 사용하는 것에 대해 설명합니다. 잠재적 인 함정을 강조하면서 성능을 최적화하기위한 설정, 엔티티 매핑 및 모범 사례를 다룹니다. [159 문자]

Java의 클래스 로딩에는 부트 스트랩, 확장 및 응용 프로그램 클래스 로더가있는 계층 적 시스템을 사용하여 클래스로드, 링크 및 초기화 클래스가 포함됩니다. 학부모 위임 모델은 핵심 클래스가 먼저로드되어 사용자 정의 클래스 LOA에 영향을 미치도록합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

Dreamweaver Mac版
시각적 웹 개발 도구
