An automated API generation for the IntelliJ platform
If you haven’t noticed: I already published a plugin for the IntelliJ platform of IDEs by Jetbrains. Developing for the IntelliJ platform is sometimes a bit hard, because I’m used to have a API-documentation for reference, but somehow Jetbrains didn’t provide one for the platform.
Looking at their sources over at github, I found, that their code is actually quite well commented using Javadoc comments in most parts, so generating an API documentation shouldn’t be that hard.
That’s what I thought at least.
But, well, Javadoc’s a bitch. It comes along with the JDK, so there’s the first problem: What JDK? Oracle? OpenJDK? 8? 9? I started writing on a Mac with a recent Oracle JDK 8 and got everything running quite quickly. To automatically generate the doc every night, I thought that using Travis would be a great idea (hint: it is!). Travis, however, uses the same JDK, but on a linux agent, which somehow produced a different result.
To fix problems with different platforms, I wrapped all up in a docker container.
But a good I/O performance for a fairly large group of files using Docker for Mac? Yeah, sure.
Docker for Mac, which is using HyperKit for its Linux-Docker Host, is extremely bad when it comes to I/O performance (Docker really works best in an all-Linux environment). However, I wrapped something up using docker-sync, but found out, that it’s really a niche solution for macOS. So, I ended writing a macOS-docker solution and a linux solution.
But an up-to-date Oracle JDK as a docker container? Yeah, sure.
Automating the installation of an Oracle JDK is hell and there’s no official or even up-to-date Docker image available. So instead, I used the nice OpenJDK image. I used the Javadoc from that one, but couldn’t get it to produce an output, when there’s a library missing (the other javadoc simply skipped that missing library). So, finally, I ended up with telling the javadoc of OpenJDK 9 to use the old javadoc implementation using the -Xold
It works now and we have a daily generated API doc (see the generator code over at github), although I’m not quite sure how stable the system is. So, keep your fingers crossed.
Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.
Calendar
M | D | M | D | F | S | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |
Archive
- Januar 2024
- Dezember 2023
- April 2021
- März 2021
- September 2020
- Dezember 2019
- November 2019
- Oktober 2019
- Juli 2019
- Juni 2019
- Mai 2019
- April 2019
- März 2019
- September 2018
- August 2018
- Juli 2018
- März 2018
- Januar 2018
- Dezember 2017
- September 2017
- März 2017
- Februar 2017
- Januar 2017
- August 2016
- Mai 2016
- Dezember 2015
- November 2015
- August 2015
- März 2015
- Dezember 2014
- September 2014
- August 2014
- Juli 2014
- Februar 2014
- Oktober 2013
- September 2013
- August 2013
- Juli 2013
- Juni 2013
- Mai 2013
- April 2013
- November 2012
- Oktober 2012
- September 2012
- August 2012
- Juni 2012
- Mai 2012
- März 2012
- Februar 2012
- Januar 2012
- November 2011
- Juli 2011
- Juni 2011
- März 2011
- Februar 2011
- Januar 2011
- Dezember 2010
- November 2010
- April 2010
- Februar 2010
Schreibe einen Kommentar