<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Gradle on TripleZ&#39;s Blog</title>
    <link>https://blog.triplez.cn/tags/gradle/</link>
    <description>Recent content in Gradle on TripleZ&#39;s Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-cn</language>
    <lastBuildDate>Fri, 26 Jul 2019 02:47:51 +0000</lastBuildDate><atom:link href="https://blog.triplez.cn/tags/gradle/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>配置 Gradle (IDEA) 环境的坑</title>
      <link>https://blog.triplez.cn/posts/err-and-solution-of-config-gradle-idea-env/</link>
      <pubDate>Fri, 26 Jul 2019 02:47:51 +0000</pubDate>
      
      <guid>https://blog.triplez.cn/posts/err-and-solution-of-config-gradle-idea-env/</guid>
      <description>&lt;p&gt;要做个 Entry Task ，兴奋地配置了个 Java 的环境，没想到踩了这么多坑。&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>要做个 Entry Task ，兴奋地配置了个 Java 的环境，没想到踩了这么多坑。</p>
<h2 id="plugin-was-not-found-in-any-of-the-following-sources">Plugin was not found in any of the following sources</h2>
<p>Spring Boot 官方提供了一个 <a href="https://start.spring.io/">Spring Intializr</a> 以快速初始化项目，选择了 Gradle Project 之后进入项目，IDEA 的 Gradle 同步上一直报如下错误：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt" id="hl-0-1"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-0-1">1</a>
</span><span class="lnt" id="hl-0-2"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-0-2">2</a>
</span><span class="lnt" id="hl-0-3"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-0-3">3</a>
</span><span class="lnt" id="hl-0-4"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-0-4">4</a>
</span><span class="lnt" id="hl-0-5"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-0-5">5</a>
</span><span class="lnt" id="hl-0-6"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-0-6">6</a>
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">Plugin [id: &#39;org.springframework.boot&#39;, version: &#39;2.1.6.RELEASE&#39;] was not found in any of the following sources:
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">- Gradle Core Plugins (plugin is not in &#39;org.gradle&#39; namespace)
</span></span><span class="line"><span class="cl">- Plugin Repositories (could not resolve plugin artifact &#39;org.springframework.boot:org.springframework.boot.gradle.plugin:2.1.6.RELEASE&#39;)
</span></span><span class="line"><span class="cl">  Searched in the following repositories:
</span></span><span class="line"><span class="cl">    Gradle Central Plugin Repository
</span></span></code></pre></td></tr></table>
</div>
</div><p>折腾了半天，搜索了无数解决方案都无效，最后根据这个<a href="https://discuss.gradle.org/t/how-to-apply-a-plugin-not-in-gradle-core-or-gradle-central-plugin-repository/15605/2">回答</a>才解决。<del>原因现在还没弄清楚，但是能 work 。</del> 解决方案如下：</p>
<p>在 <code>build.gradle</code> 文件中的 <code>plugins</code> 是这样的：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt" id="hl-1-1"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-1-1">1</a>
</span><span class="lnt" id="hl-1-2"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-1-2">2</a>
</span><span class="lnt" id="hl-1-3"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-1-3">3</a>
</span><span class="lnt" id="hl-1-4"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-1-4">4</a>
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-groovy" data-lang="groovy"><span class="line"><span class="cl"><span class="n">plugins</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">	<span class="n">id</span> <span class="s1">&#39;org.springframework.boot&#39;</span> <span class="n">version</span> <span class="s1">&#39;2.1.6.RELEASE&#39;</span>
</span></span><span class="line"><span class="cl">	<span class="n">id</span> <span class="s1">&#39;java&#39;</span>
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>更改一下，将 <code>org.springframework.boot</code> 包移出并去掉版本号：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt" id="hl-2-1"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-2-1">1</a>
</span><span class="lnt" id="hl-2-2"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-2-2">2</a>
</span><span class="lnt" id="hl-2-3"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-2-3">3</a>
</span><span class="lnt" id="hl-2-4"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-2-4">4</a>
</span><span class="lnt" id="hl-2-5"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-2-5">5</a>
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-groovy" data-lang="groovy"><span class="line"><span class="cl"><span class="n">plugins</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">    <span class="n">id</span> <span class="s1">&#39;java&#39;</span>
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">apply</span> <span class="nl">plugin:</span> <span class="s1">&#39;org.springframework.boot&#39;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>于是这个错误就解决了 ;)</p>
<h2 id="plugin-with-id-orgspringframeworkboot-not-found">Plugin with id &lsquo;org.springframework.boot&rsquo; not found</h2>
<p>然而它会变成另外一个错误，如下：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt" id="hl-3-1"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-3-1">1</a>
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">Plugin with id &#39;org.springframework.boot&#39; not found.
</span></span></code></pre></td></tr></table>
</div>
</div><p>又折腾搜索了一番，发现是缺少 <code>buildscript</code> 。在 <code>build.gradle</code> 文件最前面加入如下内容：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt" id="hl-4-1"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-4-1">1</a>
</span><span class="lnt" id="hl-4-2"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-4-2">2</a>
</span><span class="lnt" id="hl-4-3"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-4-3">3</a>
</span><span class="lnt" id="hl-4-4"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-4-4">4</a>
</span><span class="lnt" id="hl-4-5"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-4-5">5</a>
</span><span class="lnt" id="hl-4-6"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-4-6">6</a>
</span><span class="lnt" id="hl-4-7"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-4-7">7</a>
</span><span class="lnt" id="hl-4-8"><a style="outline: none; text-decoration:none; color:inherit" href="#hl-4-8">8</a>
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-groovy" data-lang="groovy"><span class="line"><span class="cl"><span class="n">buildscript</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">	<span class="n">repositories</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">		<span class="n">mavenCentral</span><span class="o">()</span>
</span></span><span class="line"><span class="cl">	<span class="o">}</span>
</span></span><span class="line"><span class="cl">	<span class="n">dependencies</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">		<span class="n">classpath</span> <span class="s1">&#39;org.springframework.boot:spring-boot-gradle-plugin:2.1.6.RELEASE&#39;</span>
</span></span><span class="line"><span class="cl">	<span class="o">}</span>
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Problem solved !</p>
<h2 id="connection-to-the-internet-denied">Connection to the Internet denied.</h2>
<p>遇到这个错误，在 <code>build.gradle</code> 的 <code>repositories</code> 中换一个 Maven 源即可。</p>
<h2 id="找不到或无法加载主类">找不到或无法加载主类</h2>
<p>在运行 Spring Boot 的时候遇到了这个问题，在命令行上 <code>gradle build</code> 出 <code>jar</code> 包是能够正常运行的，然而在 IDEA 里就不能通过 <code>Run Application</code> 正常运行。解决方案其实特别特别简单：右键项目中的 <code>src</code> 文件夹，找到 <code>Mark Directory as</code> ，选择 <code>Sources Root</code> ，重新构建运行项目即可。</p>
<p>折腾个环境花了一天，还是得好好学习啊……</p>]]></content:encoded>
    </item>
    
  </channel>
</rss>
