記事のディレクトリ
IDEAで初めてMavenを使用したときは、さまざまな構成や環境で多くの時間を費やしました。!
完全なディレクトリ構造:
1つは、Mavenのインストールおよび構成環境変数です。
公式ダウンロードリンク:https://archive.apache.org/dist/maven/maven-3/
1.最新のダウンロードを選択しないことをお勧めします。初めて使用したときは、Maven 3.6.3 + IDEA 2020.3でした。その結果、常に使用できませんでした。その後、Maven 3.3.9 + IDEA 2019.3を選択しました(通常、IDEA2020とMaven3.6.3はどちらも機能しないはずです。失敗した場合は、バージョンを下げてください)。Mavenをダウンロードするときは、bin-zipを選択して解凍します。
2.解凍後、新しいフォルダーを作成する場所を見つけ(ローカルウェアハウスとして、さまざまなjarパッケージを配置します)、構成のためにmavenディレクトリ-conf-setting.xmlに移動します。
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<!-- 下面这行代码需要自己添加,表明自己本地仓库的位置(实际上不加也可以,IDEA也能改)-->
<localRepository>F:\Environment\repository</localRepository>
以下はAlibabaCloudの画像です。setting.xmlのmirrorsタグに配置する必要があります。HuaweiCloudなどの他の画像も利用できます。ただし、最新の要件はhttpsを使用することです。しかし、多くの方法を試しましたが失敗しました。 httpを使用することを選択し、IDEAに移動してセキュリティプロトコルを無視します。
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
3.システム環境変数を設定します。ここで、M2_HOMEとMAVEN_HOMEの違いはMavenバージョンです。以前はMaven 1がMAVEN_HOMEを使用し、後のMaven2と3はM2_HOMEでした。保険期間中に両方が追加されます。
次に、cmdでmavenコマンドを使用するために、mavenのbinディレクトリをPATHに追加する必要があります。
いずれにせよ、1つを選択して追加するだけです。2つ目は相対パスの柔軟性が高いため、2つ目が後の検証で失敗した場合は、最初の絶対パスが使用されます。
4.確認し、win + Rし、cmdと入力してから、コマンドmvn -vを入力します。出力が成功した場合、Maven構成は成功しています。
2つ目は、IDEAがMavenプロジェクトを作成することです。
1. IDEAは主にここでJavaWebを作成するために使用されます。通常、複数のモジュールが使用されるため、最初はテンプレートを使用しないでください。常に最初に行きます。
(プロセス中にMavenを選択した場合は、最初にIDEAの組み込みを使用するか、独自の組み込みを選択できます。入力後にデフォルト設定が設定されます)
2.新しいプロジェクトのデフォルト設定を行います
独自のMavenとウェアハウスおよび構成ファイルを選択してください
独自のJDKを選択し、自動インポートパッケージを確認してから、インポーターのVMオプションに次のコマンドを入力します(セキュリティプロトコルは無視してください。そうしないと、以前のAlibaba Cloudイメージを使用できません)。
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
**注:**このコマンドを入力した後もミラーが使用できない可能性があります。エラーの内容に注意してください。バージョンを下げることで使用できます。使用しているバージョンに変更することをお勧めします。 、Maven 3.3.9 + IDEA 2019.3、これは利用可能であることが保証されています。ご不明な点がございましたら、私にプライベートでお問い合わせください。
3. Webテンプレートを使用していないため、ディレクトリ構造が不完全です。同時に、サブテンプレートを作成し、最初にsrcディレクトリを削除してから、新しいテンプレートを作成する必要があります。
一般的に、Webテンプレートを選択すると、webappディレクトリが作成されますが、テンプレートを使用しても何も作成されないため、すべてのディレクトリ構造を自分で作成する必要があります。
**注:**テンプレートの作成後、次のエラーが発生する可能性があるため、無視してください。
4. src、test、webapp、その他のディレクトリを自分で作成します。
- サブテンプレートを右クリックして新しいディレクトリを選択し(サブテンプレートが必要ない場合は、プロジェクトディレクトリを右クリックします)、必要なディレクトリをいくつか作成します。
- 次に、Ctrl + Shift + Alt + Sでプロジェクト構造を開き、サブモジュールを選択してWebを追加します。最初に、これら2つのパスの下にディレクトリとファイルを作成します。次に、右下隅にある[アーティファクトの作成]をクリックします。
- サブモジュールのターゲットが作成され、後続の生成されたパッケージはすべてこのファイルに含まれます
- モジュールの出力ディレクトリを変更します(このコンパイル出力は親プロジェクトから継承され、自分で変更できます)
5.プロジェクトの出力ディレクトリを変更します(outはプロジェクト全体の出力として使用され、targetはモジュールの出力として使用されるため、最初にoutディレクトリを作成してから、プロジェクトのターゲットを削除する必要があります。 )
注:アーティファクトの出力場所を変更する必要があり、ターゲットに変更する必要があります。
5.テストでは、最初に2つのmaven pom.xmlとweb.xmlの内容を入力してから、index.jspとTestServlet.javaを作成します。
pom.xml(無題、プロジェクト全体)
<?xml version="1.0" encoding="UTF-8"?>
<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>org.example</groupId>
<artifactId>untitled</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>untitled1</module>
</modules>
<properties>
<!-- 项目的默认构建编码 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
TestServlet.java
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class TestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setCharacterEncoding("utf-8");
resp.getWriter().print("Servlet");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>测试</h1>
</body>
</html>
3、Tomcatを構成します
1.ローカルTomcatを追加します
2.ローカルTomcatおよびその他のパラメーターを設定し、アーティファクトを追加します
3.展開、下の赤い円は、ブラウザにURLを入力するときに追加する必要があるものです。
4.プロジェクトを開始し、サーブレットのURLを入力します
第4に、優れたMavenプロジェクトを作成する際の問題
1. Mavenプロジェクトを作成するときに、次の問題が発生する可能性があります。ミラーリングが間違っているなどの理由でプラグインがダウンロードされない。
8つのエラーを報告します:
Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:2.5
Cannot resolve plugin org.apache.maven.plugins:maven-resources-plugin:2.6
Cannot resolve plugin org.apache.maven.plugins:maven-jar-plugin:2.4
Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1
Cannot resolve plugin org.apache.maven.plugins:maven-surefire-plugin:2.12.4
Cannot resolve plugin org.apache.maven.plugins:maven-install-plugin:2.4
Cannot resolve plugin org.apache.maven.plugins:maven-deploy-plugin:2.7
Cannot resolve plugin org.apache.maven.plugins:maven-site-plugin:3.3
解決策:cmdを開き、mvn help:systemと入力して、SUCCESSBUILDが表示されるまでダウンロードできるかどうかを確認します。
成功した場合は、プロジェクトに戻ってリロードして更新し、3つすべての更新を試してください。
失敗した場合は、最後のエラーを確認してブラウザの翻訳にコピーします。AlibabaCloudに接続できない、確認が見つからないなどのエラーがある場合は、httpsが原因です。まず、コマンドがmaven-importの代わりに正しい入力。それでも入力が間違っている場合は、ミラーが無効であるか、mavenとideaのバージョンに問題がある可能性があります。