mirror of
https://github.com/ethauvin/kobalt-doc.git
synced 2025-04-25 20:07:11 -07:00
Merge branch 'master' of github.com:cbeust/kobalt-doc
This commit is contained in:
commit
491722bff7
4 changed files with 320 additions and 246 deletions
|
@ -527,8 +527,8 @@ Here are the options that you can pass to <code>./kobaltw</code>:
|
|||
|
||||
<table style="font-size: 14px" class="table table-striped">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 25%;">
|
||||
<col span="1" style="width: 10%;">
|
||||
<col span="1" style="width: 30%;">
|
||||
<col span="1" style="width: 5%;">
|
||||
<col span="1" style="width: 10%;">
|
||||
<col span="1" style="width: 20%;">
|
||||
<col span="1" style="width: 40%;">
|
||||
|
@ -551,9 +551,9 @@ Here are the options that you can pass to <code>./kobaltw</code>:
|
|||
<td>Use this option if you are trying to build a project whose <code>Build.kt</code> is not in <code>kobalt/src</code>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>--checkVersions</code></td>
|
||||
<td><code><span style="white-space:nowrap">--checkVersions</span></code></td>
|
||||
<td>Boolean</td>
|
||||
<td>false</td>td>
|
||||
<td>false</td>
|
||||
<td>Display all the new versions of your dependencies.</td>
|
||||
<td>This option looks at all the dependencies found in your build file and then contacts all the Maven repositories in order to find out if any of these repos contains a newer version. If any are found, they are displayed:
|
||||
<pre class="brush:plain">
|
||||
|
@ -579,7 +579,7 @@ New versions found:
|
|||
<td>The parameter to this argument is a list of template names separated by commas, e.g. <code>"java,myProject"</code>. Each template will be invoked in order so they can generate their files.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>--listTemplates</code></td>
|
||||
<td><code><span style="white-space:nowrap">--listTemplates</span></code></td>
|
||||
<td></td>
|
||||
<td>N/A</td>
|
||||
<td>List all the templates available.</td>
|
||||
|
@ -592,6 +592,14 @@ New versions found:
|
|||
<td>Specify the log level.</td>
|
||||
<td>The default level is 1. Level 0 will quiet everything and 2 and 3 will display increasingly verbose output.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code><span style="white-space:nowrap">--noIncremental</span></code></td>
|
||||
<td>Boolean</td>
|
||||
<td>false</td>
|
||||
<td>Turn off incremental builds.</td>
|
||||
<td>If this flag is specified, Kobalt will run all the tasks, even those that are incremental and would have
|
||||
been skipped.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>--plugins</code></td>
|
||||
<td>Comma-separated list of plugin id's</td>
|
||||
|
@ -600,7 +608,7 @@ New versions found:
|
|||
<td>This is similar to specifying these plug-in id's in a build file except that no build file is needed.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>--pluginJarFiles</code></td>
|
||||
<td><code><span style="white-space:nowrap">--pluginJarFiles</span></code></td>
|
||||
<td>Comma-separated list of plugin jar files</td>
|
||||
<td></td>
|
||||
<td>Specify the plug-ins to load.</td>
|
||||
|
@ -613,13 +621,6 @@ New versions found:
|
|||
<td>Display information about the given id.</td>
|
||||
<td>Display which repo this artifact can be found in and the whole graph of its dependencies.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>--resolve</code></td>
|
||||
<td>Maven id<br/>(e.g. <code>"com.beust:kobalt:0.228"</code>)</td>
|
||||
<td>N/A</td>
|
||||
<td>Display information about the given id.</td>
|
||||
<td>Display which repo this artifact can be found in and the whole graph of its dependencies.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>--tasks</code></td>
|
||||
<td>Boolean</td>
|
||||
|
|
|
@ -51,13 +51,13 @@ $ which kobaltw
|
|||
</p>
|
||||
<h3 class="section" indent="1" id="manually">Manually</h3>
|
||||
<p>
|
||||
<a href="https://github.com/cbeust/kobalt/releases/latest">Download the zip file</a>, unzip it and add that directory to your <code>$PATH</code> variable so that you can invoke the command <code>kobaltw</code>.
|
||||
<a href="https://github.com/cbeust/kobalt/releases/latest">Download the zip file</a>, unzip it and add the <code>bin</code> directory to your <code>$PATH</code> variable so that you can invoke the command <code>kobaltw</code>:
|
||||
</p>
|
||||
<pre class="brush:plain">
|
||||
cd yourLocation
|
||||
unzip kobalt-xxx.zip
|
||||
cd kobalt-xxx
|
||||
export PATH=$PWD:$PATH
|
||||
export PATH=$PWD/bin:$PATH
|
||||
</pre>
|
||||
<h2 class="section" id="initialize">2. Initialize your project</h2>
|
||||
<p>
|
||||
|
@ -129,7 +129,7 @@ val jcommander = project {
|
|||
</p>
|
||||
<pre class="brush:java">
|
||||
./kobaltw assemble</pre>
|
||||
<h2 class="section" id="idea-plugin">5. IDEA users: generate IDEA files</h2>
|
||||
<h2 class="section" id="generate-idea-files">5. IDEA users: generate IDEA files</h2>
|
||||
<p>
|
||||
If you are planning to use IDEA to work on your project, you can ask Kobalt to generate all the IDEA files necessary to import your project:
|
||||
</p>
|
||||
|
@ -147,7 +147,8 @@ If you are planning to use IDEA to work on your project, you can ask Kobalt to g
|
|||
</p>
|
||||
<h2 class="section" id="idea-plugin">6. IDEA users: sync your build file</h2>
|
||||
<p>
|
||||
If you're using Intellij IDEA, make sure you've <a href="../idea-plug-in/index.html">installed the Kobalt plugin</a> and then go to <code>Kobalt -> Sync Build File</code>. Once the build file is synchronized, the errors should disappear
|
||||
If you're using Intellij IDEA, make sure you've <a href="../idea-plug-in/index.html">installed the Kobalt plugin</a> and then go to <code>Tools → Kobalt → Sync Build File</code>. Once the build file is synchronized, the errors should
|
||||
disappear
|
||||
and you can now use all the regular functions of IDEA on <code>Build.kt</code> just like any other Kotlin
|
||||
files (auto completion, jump to symbol, etc...).
|
||||
</p>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<img src="../pics/install-plugin.png" class="img-rounded kb-wide"/>
|
||||
</p>
|
||||
<p>
|
||||
Install it and restart IDEA. If the plug-in was correctly installed, you should see a new menu called "Kobalt" juste before the "Help" menu:
|
||||
Install it and restart IDEA. If the plug-in was correctly installed, you should see a new menu called "Kobalt" in the "Tools" menu:
|
||||
</p>
|
||||
<p align="center">
|
||||
<img src="../pics/kobalt-menu.png" class="img-rounded"/>
|
||||
|
|
|
@ -45,7 +45,73 @@
|
|||
<a href="../ten-minutes/index.html">write and publish a plug-in in ten minutes</a> and then you can come back here
|
||||
and keep reading.
|
||||
</p>
|
||||
<h2 class="section" id="idea-set-up">Setting up IDEA</h2>
|
||||
<h3 class="section" indent="1" id="launch-configuration">Launch configuration</h3>
|
||||
<p>
|
||||
The simplest way to run your plug-in in your IDE is to create a main function in the main class of your
|
||||
plug-in as follows:
|
||||
</p>
|
||||
<pre class="brush:java">
|
||||
fun main(argv: Array<String>) {
|
||||
com.beust.kobalt.main(argv)
|
||||
}
|
||||
</pre>
|
||||
<p>
|
||||
In order for this code to compile, you will have to switch the dependency of your plug-in from
|
||||
<code>kobalt-plugin-api</code> to just <code>kobalt</code>, which is the actual application (and which
|
||||
therefore contains the <code>main()</code> entry point).
|
||||
</p>
|
||||
<pre class="brush:java">
|
||||
// Normal dependency
|
||||
compile("com.beust:kobalt-plugin-api:$KOBALT_VERSION")
|
||||
|
||||
// Development dependency
|
||||
compile("com.beust:kobalt:$KOBALT_VERSION")
|
||||
</pre>
|
||||
<p>
|
||||
You might find it convenient to leverage Kobalt's ability to use regular Kotlin variables to make things easier:
|
||||
</p>
|
||||
<pre class="brush:java">
|
||||
val dev = false
|
||||
val kobaltDependency = if (dev) "kobalt" else "kobalt-plugin-api"
|
||||
|
||||
val p = project {
|
||||
// ...
|
||||
|
||||
compile("com.beust:$kobaltDependency:$KOBALT_VERSION")
|
||||
}
|
||||
</pre>
|
||||
<p>
|
||||
Then you can simply set the <code>dev</code> to <code>true</code> during development and back to <code>false
|
||||
</code> when you are ready to publish your plug-in.
|
||||
</code>
|
||||
</p>
|
||||
<p>
|
||||
Then resync your build file in IDEA and your <code>main()</code> function should now build and be launchable.
|
||||
You can right click on that class file and select "Debug <your class name>", which will launch Kobalt
|
||||
with your plug-in. You can set a breakpoint in one of your tasks or anywhere that gets invoked. Don't forget
|
||||
to invoke this launch configuration with the regular parameters passed to Kobalt (e.g. <code>"assemble"</code>).
|
||||
</p>
|
||||
<h3 class="section" indent="1" id="local-dependencies">Local dependencies</h3>
|
||||
<p>
|
||||
In the process of building your plug-in, you will probably be invoking it from test projects and since
|
||||
you will be making changes to your plug-in and generating jar files often, you might find it more convenient
|
||||
to have these test projects point to your local jar file instead of the Maven one (which would require you
|
||||
to upload your plug-in all the time). For this, you might find the <code>file()</code> and <code>homeDir
|
||||
()</code> directives convenient:
|
||||
</p>
|
||||
<pre class="brush:java">
|
||||
// Regular dependency
|
||||
compile("com.example:myPlugin:0.1")
|
||||
|
||||
// Development dependency
|
||||
compile(file(homeDir("kotlin/myPlugin/kobaltBuild/libs/myPlugin-0.1.jar"))
|
||||
</pre>
|
||||
<p>
|
||||
With this latter configuration, simply build your plug-in to generate the jar file with <code>./kobaltw
|
||||
assemble</code>, switch to your test project and invoke Kobalt on it so that your plug-in will get invoked
|
||||
and you should see the latest version of your code being invoked.
|
||||
</p>
|
||||
<h2 class="section" id="philosophy">Plug-in architecture</h3>
|
||||
<p>
|
||||
<p>
|
||||
|
@ -511,7 +577,13 @@ Running dynamictask
|
|||
</p>
|
||||
<pre class="brush:java">
|
||||
fun taskAssemble(project: Project) : TaskResult {
|
||||
project.projectProperties.put(PACKAGES, packages)
|
||||
project.projectProperties.put("packages", packages)
|
||||
</pre>
|
||||
<p>
|
||||
Another plug-in can then query this property as follows:
|
||||
</p>
|
||||
<pre class="brush:java">
|
||||
val packages = project.projectProperties.put("packages")
|
||||
</pre>
|
||||
<h3 class="section" indent="1" id="plugin-properties">Plug-in properties</h3>
|
||||
<p>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue