IntelliJ IDEA 是很好的 IDE, 可是免費的社區版不直接支持開發 Web 項目。因此須要本身配置。 網上大可能是教程都是用 Maven 和 jetty 來配置。我剛學 JAVA。所以直接從 Gradle 上手配置了。html
這裏直接用寫一個 Servlet 的 Helloworld,記錄下踩過的坑,讓後來的人少走彎路。 在這以前請自行安裝 Gradle 並使其能全局運行。瞭解基本的 Gradle 的概念。本文默認讀者會使用 Gradle。java
https://www.jetbrains.com/idea/android
gradle init --type java-library
複製代碼
/*
* This build file was auto generated by running the Gradle 'init' task
* by 'Yang' at '16-9-18 下午5:48' with Gradle 3.0
*
* This generated file contains a sample Java project to get you started.
* For more details take a look at the Java Quickstart chapter in the Gradle
* user guide available at https://docs.gradle.org/3.0/userguide/tutorial_java_projects.html
*/
// Tomcat 須要
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "com.bmuschko:gradle-tomcat-plugin:2.2.3"
}
}
// 要使用的插件,看名字應該知道什麼做用
// Apply the java plugin to add support for Java
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'war'
apply plugin: "com.bmuschko.tomcat"
// In this section you declare where to find the dependencies of your project
repositories {
// Use 'jcenter' for resolving your dependencies.
// You can declare any Maven/Ivy/file repository here.
// jcenter()
// maven 的倉庫
mavenCentral()
}
// In this section you declare the dependencies for your production and test code
dependencies {
// The production code uses the SLF4J logging API at compile time
compile 'org.slf4j:slf4j-api:1.7.21'
// 依賴 servlet
compile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1'
// Declare the dependency for your favourite test framework you want to use in your tests.
// TestNG is also supported by the Gradle Test task. Just change the
// testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
// 'test.useTestNG()' to your build script.
testCompile 'junit:junit:4.12'
// 配置 Tomcat 插件
def tomcatVersion = '8.0.27'
tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
"org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}",
"org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
}
// Tomcat 配置
// Tomcat 配置tomcatRun.contextPath = 'testa/'
tomcatRunWar.contextPath = 'teats/'
複製代碼
配置離線工做也可加快速度git
File > Settings > Build, Execution & Deployment > Compiler > Compiler and de-select Configure on demand The above still uses data but is faster, I was able to load images and maps. However, in addition, if >you want to be completely offline, you need to do the following: File -> Settings ->Build, Execution,Deployment -> Build Tools -> Gradle -> check Offline workgithub
試試有沒有配置成功web
gradlew build # 編譯項目
gradlew tasks # 查看任務
複製代碼
gradlew idea
複製代碼
若是以後項目更新了依賴,能夠運行下面的命令同步到 ideaapache
gradlew cleanIdea
複製代碼
點擊 + remote api
寫一個名字,其餘直接默認就好。能夠把第一行參數複製出來下一步使用,即:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
複製代碼
第一行根據本身項目填寫 gradle build 的位置 第二行輸入 tomcatRun 第三行填上一個步驟複製下來的參數。android-studio
package main.java;
/*
* This Java source file was auto generated by running 'gradle buildInit --type java-library'
* by 'Yang' at '16-9-18 下午5:48' with Gradle 3.0
*
* @author Yang, @date 16-9-18 下午5:48
*/
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.Writer;
@WebServlet("/")
public class Library extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Writer writer = resp.getWriter();
writer.write("HelloWorld!");
writer.flush();
writer.close();
super.doGet(req, resp);
}
}
複製代碼
這裏注意 src/main 下面必須有 webapp 目錄,空目錄都要。否則訪問會出現 404 錯誤 tomcat
打斷點 從新訪問查看調試結果